Jfinal中redis的操作问题

Redis.use().set("OnlyTest", 1);


在redis中使用这个方法,存储到redis中的值变成了: \xF7\x01

是序列化的问题么?  理论上应该是1,然后我可以调用incr(thiskey) 等


对了,后台会报错:

ERR value is not an integer or out of range


评论区

Dreamlu

2016-10-19 16:08

incr的默认值用:incrby key defaultValue

紫电清霜

2016-10-19 17:43

@Dreamlu 春春,棒棒哒 :) 我也来看看波总

IvyHelen

2016-10-20 09:04

IvyHelen

2016-10-20 09:04

@Dreamlu 感谢回复,您的意思是,我赋的Redis.use().set("OnlyTest", 1); 后调用incr("OnlyTest") 还是使用的默认值么? 改如何解决呢?

Dreamlu

2016-10-20 09:24

Redis.use().incrby("OnlyTest", 1); 然后调用incr("OnlyTest")

IvyHelen

2016-10-20 09:40

@Dreamlu 恩,这种是没问题的,但是我再获取此key(Redis.use().get("OnlyTest"))的时候就会报错:java.lang.RuntimeException: java.io.IOException: java.lang.NullPointerException
at com.jfinal.plugin.redis.serializer.FstSerializer.valueFromBytes(FstSerializer.java:78)
at com.jfinal.plugin.redis.Cache.valueFromBytes(Cache.java:1211)

IvyHelen

2016-10-20 09:43

最后测试发现,可以这么使用:
Redis.use().incr("OnlyTest");
Redis.use().getJedis().get("OnlyTest");
Redis.use().getJedis().close();
这样输出System.out.println(Redis.use().getJedis().get("OnlyTest")); 是没有错误的

IvyHelen

2016-10-20 12:31

@JFinal 出现这种问题,我看到是因为序列化valueFromBytes 的问题,我尝试了使用JDK的,也是报错,但是不是空指针。 我想问下这种是我使用的问题还是Jfinal里面有什么配置我不知道的。

热门反馈

扫码入社