我是靠谱客的博主 狂野雪糕,最近开发中收集的这篇文章主要介绍使用RedisTemplate报错ERR value is not an integer or out of range,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
在用RedisTemplate时候报错ERR value is not an integer or out of range,经过排查发现是RedisTemplate操作自增时侯报错。
redisTemplate.opsForValue().increment(keyLoginFail,1);
原因有二:
一:序列化的问题:
只有使用StringRedisSerializer序列化器才能使用incrment方法
解决:
在redis配置中加入以下代码
// 在使用注解@Bean返回RedisTemplate的时候,同时配置hashKey与hashValue的序列化方式。
// key采用String的序列化方式
template.setKeySerializer(stringRedisSerializer);
// value序列化方式采用jackson
template.setValueSerializer(jackson2JsonRedisSerializer);
// hash的key也采用String的序列化方式
template.setHashKeySerializer(stringRedisSerializer);
// hash的value序列化方式采用jackson
template.setHashValueSerializer(jackson2JsonRedisSerializer);
二:检查是否使用了正确的格式,如 RedisTemplate<String, String> redisTemplate;(本次我的问题所在)
我之前写的是
private RedisTemplate<String,Object> redisTemplate;
解决:
改成
private RedisTemplate<String,String> redisTemplate;
最后
以上就是狂野雪糕为你收集整理的使用RedisTemplate报错ERR value is not an integer or out of range的全部内容,希望文章能够帮你解决使用RedisTemplate报错ERR value is not an integer or out of range所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复