ocs incr decr 是不是有bug啊-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

ocs incr decr 是不是有bug啊

fick707 2016-01-21 11:56:49 1786

我在使用ocs时,add,set,replace等常用方法正常。但incr和decr方法有问题。调用该方法时,返回值为-1,即找不到对应的key;不管时刚插入的,还是其他程序插入的,单元测试代码中插入的,都是这样的。
我换过一次测试用的key,成功了。但再次调用,又不行了。
诡异的很。

代码如下:就这么简单,都不行

String key = "womancount";
memcachedClient.add(key, 600, 550);
System.out.println(memcachedClient.get(key));

System.out.println(memcachedClient.incr(key, 3));
System.out.println(memcachedClient.get(key));

测试技术
分享到
取消 提交回答
全部回答(1)
  • fick707
    2019-07-17 18:25:49
    已采纳

    已经解决了,不是bug,是memcached内部实现细节问题;
    如果想用incr/decr操作某一对象时,这个对象在缓存中必须是整形的。如果想正确使用上述两个方法,在初始化目标对象时,要用字符串类型操作,即:
    memcachedClient.add(key, 600, "550"); // 这样就可以了。
    具体原理大家可以去看一下memcached的wiki。
    也可以看这个文档:http://my.oschina.net/flashsword/blog/93109

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题