redis 亂碼:\xac\xed\x00\x05t\x00\x02


前言

學習 spring-boot 的 redis 相關部分,測試時,發現

使用redisTemplate.opsForValue().set("name","tst")插入一條數據到redis

(String) redisTemplate.opsForValue().get("name")可以成功獲取到返回值tst

但使用stringRedisTemplate.opsForValue().get("name")獲取到的值為空

於是,又進行了測試:

使stringRedisTemplate.opsForValue().set("name1", "tst")插入一條數據

再使用stringRedisTemplate.opsForValue().get("name1")獲取到的值為tst

AnotherRedisDesktopManager查看redis數據,

redisTemplate.opsForValue().set插入的是亂碼:\xac\xed\x00\x05t\x00\x02name, \xac\xed\x00\x05t\x00\x02tst

解決方案

在文章java redis存儲鍵值包含\xac\xed\x00\x05t\x00\特殊字符找到一個方案,測試有效:

private RedisTemplate redisTemplate;
@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
    RedisSerializer stringSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringSerializer);
    redisTemplate.setValueSerializer(stringSerializer);
    redisTemplate.setHashKeySerializer(stringSerializer);
    redisTemplate.setHashValueSerializer(stringSerializer);
    this.redisTemplate = redisTemplate;
}

解釋:RedisTemplate<K, V>模板類在操作redis時默認使用JdkSerializationRedisSerializer來進行序列化。

還有一個看着也不錯,先記下來:

https://gitee.com/xianhenyuan/springboot-redis


免責聲明!

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



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