ZoroXing / xmemcached

Automatically exported from code.google.com/p/xmemcached
Apache License 2.0
0 stars 0 forks source link

二进制协议 使用incr后 再get 出现 NumberFormatException #223

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
  MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(serverURLs));
        builder.setConnectionPoolSize(connectionPoolSize);
        builder.setCommandFactory(new BinaryCommandFactory());
        client = builder.build();

   memcachedService.delete("pan_2");
          long a=memcachedService.incr("pan_2", 1, 5);
         String b= memcachedService.get("pan_2");

          System.out.println("a="+a+"b="+ Long.parseLong(b));

xception in thread "main" java.lang.NumberFormatException: For input string: "5

前面多了个‘’
如果用文本协议,就ok

Original issue reported on code.google.com by panxiaoh...@gmail.com on 18 Oct 2012 at 1:56

GoogleCodeExporter commented 8 years ago
二进制协议的incr,如果key不存在,会将flag设置为0。而xmemcach
ed将flag为0的类型默认为字符串。这会导致结果异常。
因此,如果你使用二进制协议,请明确初始化计数器。

Original comment by killme2...@gmail.com on 20 Feb 2013 at 9:07