我是靠谱客的博主 狂野雪糕,这篇文章主要介绍使用RedisTemplate报错ERR value is not an integer or out of range,现在分享给大家,希望可以做个参考。

在用RedisTemplate时候报错ERR value is not an integer or out of range,经过排查发现是RedisTemplate操作自增时侯报错。

复制代码
1
2
redisTemplate.opsForValue().increment(keyLoginFail,1);

原因有二:
一:序列化的问题:
只有使用StringRedisSerializer序列化器才能使用incrment方法

解决:
在redis配置中加入以下代码

复制代码
1
2
3
4
5
6
7
8
9
10
// 在使用注解@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;(本次我的问题所在)

我之前写的是

复制代码
1
2
private RedisTemplate<String,Object> redisTemplate;

解决:
改成

复制代码
1
2
private RedisTemplate<String,String> redisTemplate;

最后

以上就是狂野雪糕最近收集整理的关于使用RedisTemplate报错ERR value is not an integer or out of range的全部内容,更多相关使用RedisTemplate报错ERR内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部