Spring的RedisTemplate存儲的key和value有特殊字符的處理
Spring RedisTemplate存儲的key和value有特殊字符
Spring的spring-data-redis包下有RedisTemplate類,當(dāng)調(diào)用:
redisTemplate.opsForValue().set("TEST","ABCD");
方法后,Redis里實(shí)際保存的key并不完全等于我們預(yù)設(shè)的key值,而是在key值前面加了一些特殊字符
就像這樣的:
"\xac\xed\x00\x05t\x00\x0cTEST"
而保存的value可能是這樣的:
"\xac\xed\x00\x05t\x00\x10cABCD"
開頭會有類似\xac\xed\x00\x05t\x00\x0c這樣的特殊字符。
這種特殊字符出現(xiàn)的原因
是因?yàn)镽edisTemplate默認(rèn)使用JdkSerializationRedisSerializer作為序列化工具。
雖然保存的key和我們想象中的不太一樣,但是并不影響我們調(diào)用
redisTemplate.opsForValue().get("TEST");
去獲取之前設(shè)置的value,而且得到的value也是正確的,不帶特殊字符。
這應(yīng)該是因?yàn)镽edisTemplate把查詢用的key值進(jìn)行同樣的序列化后再進(jìn)行查詢,所以能成功的找到該條記錄,并把value反序列化后返回,得到的就是沒有特殊字符的value。
如果不想在保存的key和value里包含這種特殊字符,可以手動修改序列化方式
使用以下代碼:
@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; }
注意:
方法前面的@Autowired注解是需要加的。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot如何實(shí)現(xiàn)定時(shí)任務(wù)的動態(tài)增刪啟停詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot如何實(shí)現(xiàn)定時(shí)任務(wù)的動態(tài)增刪啟停的相關(guān)資料,文中通過示例代碼以及圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07java 獲取HttpRequest Header的幾種方法(必看篇)
下面小編就為大家?guī)硪黄猨ava 獲取HttpRequest Header的幾種方法(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09解決javac不是內(nèi)部或外部命令,也不是可運(yùn)行程序的報(bào)錯(cuò)問題
在學(xué)著使用Java的命令行來編譯java文件的時(shí)候,遇到了這個(gè)問題,本文主要介紹了解決javac不是內(nèi)部或外部命令,也不是可運(yùn)行程序的報(bào)錯(cuò)問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04java自帶的MessageDigest實(shí)現(xiàn)文本的md5加密算法
這篇文章主要介紹了java自帶的MessageDigest實(shí)現(xiàn)文本的md5加密算法,需要的朋友可以參考下2015-12-12基于Spring概念模型:PathMatcher 路徑匹配器
這篇文章主要介紹了Spring概念模型:PathMatcher 路徑匹配器,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09spring中@autowired、@Qualifier、@Primary注解的使用說明
這篇文章主要介紹了spring中@autowired、@Qualifier、@Primary注解的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11詳解MyBatis多數(shù)據(jù)源配置(讀寫分離)
這篇文章主要介紹了詳解MyBatis多數(shù)據(jù)源配置(讀寫分離),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01