Redis的hincrBy会把key前面加上乱码前缀

Redis的hincrBy会把key前面加上乱码前缀,我使用的是默认的FstSerializer,用jfinal封装的cache  hgetCounter取值出来取不到。正常的Redis set  get没有问题。请问一下 如何设置可以让Redis的Hash表key不会自动加上前缀?

评论区

datianxia

2020-03-09 10:17

设值的方式是cache.hincrBy(userKey, "newAdd", 1);
取值的方式是cache.hgetCounter(userKey, "newAdd");
都是用的jfinal封装的cache设取值,但是取值取不出来

JFinal

2020-03-09 11:11

@datianxia 由于 redis 只能存放 string 与 byte[] 这两种类型的数据,而 java 有更多的数据类型,所以只能是将数据转成 byte[] 这种统一的格式以后再存放

出现乱码通常是存数据与取数据时没有使用统一的转换算法

楼主的场景都用了 FstSerializer,按理说是正确的

升级 jfinal 到 4.8 试试看

datianxia

2020-03-09 11:18

我用的jfinal版本是4.8, jedis版本2.9.0, fst版本2.57

datianxia

2020-03-09 11:18

有没有可能是fst版本造成的

JFinal

2020-03-09 11:27

@datianxia fst 版本也值得警惕,算法可能不同

热门反馈

扫码入社