Redis 先执行hincrBy后,再执行hgetAll 或 hget 报错

Cache cache = Redis.use();
String key = "test_key";
String filed = "test_field";
long val = cache.hincrBy(key, filed, 1L);
Map map =  cache.hgetAll(key);

执行代码后,报错空指针,报错信息如下

Exception in thread "Timer-0" 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:1217)

at com.jfinal.plugin.redis.Cache.hgetAll(Cache.java:527)


评论区

JFinal

2019-05-24 16:34

忘了添加 hGetCounter(String key, String field) 方法了,

可以写个工具方法先得到 jedis 对象,再从里头获取,记得要在 finally 中关闭 jedis 连接

badouyuren

2019-05-24 17:08

@JFinal hget 可以用 hGetCounter 替换,那 hgetAll 呢

JFinal

2019-05-24 17:21

@badouyuren 也得要添加新方法

cs3230524

2019-10-18 00:08

这种级别的 bug 都不解决吗?

JFinal

2019-10-30 20:17

jfinal 4.7 已经添加了 hgetCounter 方法,可以使用了

热门反馈

扫码入社