項目中redisTemplate設置的key,redis客戶端上查詢不到的問題


再項目使用了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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM