码迷,mamicode.com
首页 > 其他好文 > 详细

项目中redisTemplate设置的key,redis客户端上查询不到的问题

时间:2020-06-03 20:02:22      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:jdk   template   val   否则   name   temp   ash   查询   使用   

再项目使用了redis储存key,测试需要在客户端删除对应的key,发现查询不到对应的key
技术图片
redis客户端:
技术图片
技术图片

技术图片
发现redisTemplate实际存进去的key会多了几个字符

原因:程序中对key没做序列化存储

如果你用redis客户端查询你想要的key,redisTemplate下面添加这两个属性

<property?name="keySerializer">??
???????? <bean?class="org.springframework.data.redis.serializer.StringRedisSerializer"?/>??
????</property>???
????<property?name="hashKeySerializer">??
????????<bean?class="org.springframework.data.redis.serializer.StringRedisSerializer"?/>??
?</property>?

或者

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }

注意如果使用springboot会默认创建JdkSerializationRedisSerializer序列化类,我们需要自己定义redisTemplate对应的bean,且bean的名称必须为redisTemplate,否则springboot会默认创建
技术图片

https://blog.csdn.net/morendap/article/details/105271043

项目中redisTemplate设置的key,redis客户端上查询不到的问题

标签:jdk   template   val   否则   name   temp   ash   查询   使用   

原文地址:https://www.cnblogs.com/zhangww/p/13031804.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!