欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼問題及解決

 更新時(shí)間:2023年09月22日 14:46:36   作者:林志鵬JAVA  
這篇文章主要介紹了redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

redis的key出現(xiàn)的\xac\xed\x00\x05t\x00亂碼

在使用redis進(jìn)行token的存取的時(shí)候,發(fā)現(xiàn)了一個(gè)嚴(yán)重的問題,那便是根據(jù)鍵獲取值的時(shí)候一直拿不到,其實(shí)已經(jīng)set進(jìn)去了。

然后使用redis客戶端,遍歷所有的鍵的時(shí)候,發(fā)現(xiàn)鍵中有類似 \xac\xed\x00\x05t\x00 的亂碼,

如下圖

原因分析

spring-data-redis RedisTemplate<K, V>模板類 在操作redis時(shí)默認(rèn)使用JdkSerializationRedisSerializer 來進(jìn)行序列化。

spring操作redis是在jedis客戶端基礎(chǔ)上進(jìn)行的,而jedis客戶端與redis交互的時(shí)候協(xié)議中定義是用byte類型交互,看到spring-data-redis中RedisTemplate<K, V>在操作的時(shí)候k,v是泛型對(duì)象,而不是byte[]類型的,

這樣導(dǎo)致的一個(gè)問題就是,如果不對(duì)RedisTemplate進(jìn)行設(shè)置,spring會(huì)默認(rèn)采用defaultSerializer = new JdkSerializationRedisSerializer();這個(gè)方法來對(duì)key、value進(jìn)行序列化操作,JdkSerializationRedisSerializer它使用的編碼是ISO-8859-1

解決辦法一

在使用時(shí),規(guī)定redisTemplate的類型

@Autowired 
private RedisTemplate<String,String> redisTemplate

解決辦法二

添加 redis 配置類,配置使用的序列化方式

/**
 * @author linzp
 * @version 1.0.0
 * CreateDate 2020/8/18 22:26
 */
@Configuration
public class RedisConfig {
    @Bean(name = "redisTemplate")
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
        template.setConnectionFactory(factory);
        //key序列化方式
        template.setKeySerializer(redisSerializer);
        //value序列化
        template.setValueSerializer(redisSerializer);
        //value hashmap序列化
        template.setHashValueSerializer(redisSerializer);
        //key haspmap序列化
        template.setHashKeySerializer(redisSerializer);
        return template;
    }
}

解決方法三

使用 StringRedisTemplate 而不是使用 RedisTemplate

解決后,

驗(yàn)證結(jié)果如下圖:

總結(jié)

問題到此得已解決~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • redis-cli登錄遠(yuǎn)程redis服務(wù)并批量導(dǎo)入數(shù)據(jù)

    redis-cli登錄遠(yuǎn)程redis服務(wù)并批量導(dǎo)入數(shù)據(jù)

    本文主要介紹了redis-cli登錄遠(yuǎn)程redis服務(wù)并批量導(dǎo)入數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • 關(guān)于Redis的讀寫一致問題

    關(guān)于Redis的讀寫一致問題

    在項(xiàng)目使用Redis過程中,當(dāng)數(shù)據(jù)更新時(shí),我們要保證緩存和數(shù)據(jù)庫(kù)的一致性,否則會(huì)導(dǎo)致很多臟數(shù)據(jù)出現(xiàn),此時(shí)我們就要思考如何去進(jìn)行數(shù)據(jù)更新,本文就給大家講講關(guān)于redis的讀寫一致問題,需要的朋友可以參考下
    2023-08-08
  • 淺談一下如何保證Redis緩存與數(shù)據(jù)庫(kù)的一致性

    淺談一下如何保證Redis緩存與數(shù)據(jù)庫(kù)的一致性

    這篇文章主要介紹了一下如何保證Redis緩存與數(shù)據(jù)庫(kù)的一致性,今天這篇文章就帶你詳細(xì)了解一下四種同步策略,需要的朋友可以參考下
    2023-03-03
  • SpringBoot 開啟Redis緩存及使用方法

    SpringBoot 開啟Redis緩存及使用方法

    用redis做緩存,是因?yàn)閞edis有著很優(yōu)秀的讀寫能力,在集群下可以保證數(shù)據(jù)的高可用,那么今天通過本文給大家講解下SpringBoot使用Redis的緩存的方法,感興趣的朋友一起看看吧
    2021-08-08
  • Redis刪除某個(gè)目錄下的數(shù)據(jù)的實(shí)現(xiàn)

    Redis刪除某個(gè)目錄下的數(shù)據(jù)的實(shí)現(xiàn)

    本文介紹了如何在Redis中刪除指定目錄下的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • Satoken+Redis實(shí)現(xiàn)短信登錄、注冊(cè)、鑒權(quán)功能

    Satoken+Redis實(shí)現(xiàn)短信登錄、注冊(cè)、鑒權(quán)功能

    這篇文章主要介紹了Satoken+Redis實(shí)現(xiàn)短信登錄、注冊(cè)、鑒權(quán)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Redis增減庫(kù)存避坑的實(shí)現(xiàn)

    Redis增減庫(kù)存避坑的實(shí)現(xiàn)

    在電商平臺(tái)或者倉(cāng)庫(kù)管理系統(tǒng)中,庫(kù)存的管理是非常重要的一項(xiàng)任務(wù),本文主要介紹了Redis增減庫(kù)存避坑的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Redis分布式鎖一定要避開的兩個(gè)坑

    Redis分布式鎖一定要避開的兩個(gè)坑

    這篇文章主要為大家詳細(xì)介紹了Redis中分布式鎖一定要避開的兩個(gè)坑以及對(duì)應(yīng)的解決方法,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助
    2023-04-04
  • Redis設(shè)置database不生效的解決方案

    Redis設(shè)置database不生效的解決方案

    最近在做redis緩存設(shè)置的時(shí)候,發(fā)現(xiàn)即使已經(jīng)設(shè)置了database, 但是存數(shù)據(jù)的時(shí)候還是用的默認(rèn)0數(shù)據(jù)庫(kù),所以本文就給大家介紹了Redis設(shè)置database不生效的解決方案,需要的朋友可以參考下
    2023-08-08
  • 在Centos?8.0中安裝Redis服務(wù)器的教程詳解

    在Centos?8.0中安裝Redis服務(wù)器的教程詳解

    由于考慮到linux服務(wù)器的性能,所以經(jīng)常需要把一些中間件安裝在linux服務(wù)上,今天通過本文給大家介紹下在Centos?8.0中安裝Redis服務(wù)器的詳細(xì)過程,感興趣的朋友一起看看吧
    2022-03-03

最新評(píng)論