开发者社区> 问答> 正文

ocs incr decr 是不是有bug啊

已解决

我在使用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));

展开
收起
fick707 2016-01-21 11:56:49 3426 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

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

    2019-07-17 18:25:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载