RedisTemplate使用increment报错io.lettuce.core.RedisCommandExecutionException: ERR value is not an integer or out of range
问题分析
我们通过Spring的文档可以得知,Spring对Redis的罕用序列化的策略有两种,一种是RedisTemplate应用的JDKSerializationRedisSerialzer序列化,此序列化后得的值蕴含了对象的信息,版本号,类信息等,此序列化后是一个字符串没无法进行自增等操作。
另一种是StringRedisTemplate采用的StringRedisSerializer,此策略是将字符串的值转为为字节数组,所以保存到redis中的是数值,可以进行操作。
解决方法
把RedisTemplate换成String RedisTemplate