OperationException: CLIENT: CLIENT_ERROR cannot increment or decrement non-numeric value

        Future ff = mClient.set("test", 900, 2);
        System.out.println("存储的值:"+mClient.get("test"));
        mClient.incr("test", 5);
        System.out.println("存储的值:"+mClient.get("test"));
        //关闭连接
        mClient.shutdown();

 

OperationException: CLIENT: CLIENT_ERROR cannot increment or decrement non-numeric value
    at net.spy.memcached.protocol.BaseOperationImpl.handleError(BaseOperationImpl.java:169)
    at net.spy.memcached.protocol.ascii.OperationImpl.readFromBuffer(OperationImpl.java:151)
    at net.spy.memcached.MemcachedConnection.readBufferAndLogMetrics(MemcachedConnection.java:813)
    at net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:792)
    at net.spy.memcached.MemcachedConnection.handleReadsAndWrites(MemcachedConnection.java:672)
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:635)
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:409)
    at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:1334)

 

上面的代码运行,提示不能自增或者自减一个非数值的值。这是因为memcached在首次做存储的时候,如果是数值,也会自动转换为字符串进行存储,所以只要把第一行改为Future ff = mClient.set("test", 900, "2");,就没问题了

        Future ff = mClient.set("test", 900, "2");
        System.out.println("存储的值:"+mClient.get("test"));
        mClient.incr("test", 5);
        System.out.println("存储的值:"+mClient.get("test"));
        //关闭连接
        mClient.shutdown();

运行结果

=======

存储的值:2
存储的值:7

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值