目前在使用JFinal提供的RedisPlugin,使用cache确实方便,但是cache并没有封装所有的jedis方法,如pipeline等,而且cache使用了FstSerializer进行序列化和反序列化,使用原生jedis方法时需同样使用FstSerializer进行序列化
我使用如下代码在redis中存放一个hash
cache.hmset(key, (Map) record.getColumns());
使用如下代码为hash中的一个属性自增
cache.hincrBy(record, "like_num", 1);
就会提示:ERR hash value is not an integer
我猜想是由于cache.hmset()设置"like_num"属性的value时进行了序列化,所以在执行cache.hincrBy()时,调用的jedis.hincrBy(keyToBytes(key), fieldToBytes(field), value)方法虽然找到了"like_num"属性,但是无法将"like_num"的value转换为int
不知道猜想是否正确,如果正确该如何解决此问题,如果不正确又是什么原因导致的?请前辈们指点