在Jfinal中redis使用incr和decr报错的问题

我先对一个key进行incr操作,做业务判断后进行decr操作,在decr操作的时候报错,代码和报错信息如下图:

image.png

image.png

这个问题该怎么解决,我需要在incr和decr之间做什么转换操作吗?

评论区

JFinal

2019-11-13 14:52

看了一下源码,用法是对的

出现异常,可能是当前被 decr 的数据类型不是 integer 型,或许是你在前面某个地方使用 key 值 "answer-lock-" + openIdKey 存入过数据

incr 与 decr 操作的数据,只让这两个方法以及 getCounter() 去操作,不要让其它方法去操作

彭大勃

2019-11-14 16:16

@JFinal 现在问题定位到了,但是我不知道问题出在哪里,以及怎么解决.我分别在本地和服务器上都对一个不存在的key进行 incr 操作,本地是windows系统,incr后,value值为 1 ,服务器上是linux系统,incr后,value值为 \xFC\x011 .明显是被转义了.这个问题,我现在该怎么解决.这样就导致我在decr的时候,提示value值不为integer,报错JedisDataException: ERR value is not an integer or out of range

彭大勃

2019-11-14 17:01

@JFinal 不好意思,问题定位到了,是服务器上代码发布失败的原因.之前在使用incr操作后,我又使用get()操作了.后来改为getCounter().但是服务器上还是老代码.....打扰了,问题已经解决

JFinal

2019-11-17 15:45

@彭大勃 解决就好

热门反馈

扫码入社