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

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

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

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

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

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

如下圖

原因分析

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

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

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

解決辦法一

在使用時,規(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

解決后,

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

總結(jié)

問題到此得已解決~

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

相關(guān)文章

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

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

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

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

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

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

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

    SpringBoot 開啟Redis緩存及使用方法

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

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

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

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

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

    Redis增減庫存避坑的實現(xiàn)

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

    Redis分布式鎖一定要避開的兩個坑

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

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

    最近在做redis緩存設(shè)置的時候,發(fā)現(xiàn)即使已經(jīng)設(shè)置了database, 但是存數(shù)據(jù)的時候還是用的默認(rèn)0數(shù)據(jù)庫,所以本文就給大家介紹了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

最新評論