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

springboot整合spring-data-redis遇到的坑

 更新時(shí)間:2017年04月25日 11:55:56   作者:super-wen  
使用springboot整合redis,使用默認(rèn)的序列化配置,然后使用redis-client去查詢時(shí)查詢不到相應(yīng)的key.問題出在哪,怎么解決呢?下面小編給大家?guī)砹藄pringboot整合spring-data-redis遇到的坑,需要的的朋友參考下吧

描述

使用springboot整合redis,使用默認(rèn)的序列化配置,然后使用redis-client去查詢時(shí)查詢不到相應(yīng)的key.

使用工具發(fā)現(xiàn),key的前面多了\xAC\xED\x00\x05t\x00!這樣一個(gè)串.

而且value也是不能直觀可見的.

問題所在

使用springdataredis,默認(rèn)情況下是使用org.springframework.data.redis.serializer.JdkSerializationRedisSerializer這個(gè)類來做序列化.

org.springframework.data.redis.core.RedisTemplate代碼塊.

 public void afterPropertiesSet() {
    super.afterPropertiesSet();
    boolean defaultUsed = false;
    if (defaultSerializer == null) {
      defaultSerializer = new JdkSerializationRedisSerializer(
          classLoader != null ? classLoader : this.getClass().getClassLoader());
    }
    if (enableDefaultSerializer) {
      if (keySerializer == null) {
        keySerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (valueSerializer == null) {
        valueSerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (hashKeySerializer == null) {
        hashKeySerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (hashValueSerializer == null) {
        hashValueSerializer = defaultSerializer;
        defaultUsed = true;
      }
    }
    if (enableDefaultSerializer && defaultUsed) {
      Assert.notNull(defaultSerializer, "default serializer null and not all serializers initialized");
    }
    if (scriptExecutor == null) {
      this.scriptExecutor = new DefaultScriptExecutor<K>(this);
    }
    initialized = true;
  }

解決

手動(dòng)設(shè)置key的序列化方式為StringRedisSerializer,強(qiáng)制使用.

由于spring不支持泛型注入,這樣會(huì)導(dǎo)致所有的redisTemplate的key序列方式都為StringRedisSerializer. 同時(shí),最好在序列化對(duì)象保存時(shí)候手動(dòng)將其轉(zhuǎn)為json串后存入redis.易于在可視化工具中直接查看對(duì)應(yīng)value

@Bean
  public RedisTemplate<String, ?> redisTemplate(RedisConnectionFactory factory) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
    redisTemplate.setConnectionFactory(factory);
    RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();//Long類型不可以會(huì)出現(xiàn)異常信息;
    redisTemplate.setKeySerializer(stringRedisSerializer);
    return redisTemplate;
  }

以上所述是小編給大家介紹的springboot整合spring-data-redis遇到的坑,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • mac安裝配置jdk環(huán)境變量

    mac安裝配置jdk環(huán)境變量

    這篇文章主要為大家介紹了mac安裝配置jdk環(huán)境變量實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java中的DelayQueue源碼解析

    Java中的DelayQueue源碼解析

    這篇文章主要介紹了Java中的DelayQueue源碼解析,一個(gè)實(shí)現(xiàn)PriorityBlockingQueue實(shí)現(xiàn)延遲獲取的無界隊(duì)列,在創(chuàng)建元素時(shí),可以指定多久才能從隊(duì)列中獲取當(dāng)前元素,只有延時(shí)期滿后才能從隊(duì)列中獲取元素,需要的朋友可以參考下
    2023-12-12
  • Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn)

    Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn)

    這篇文章主要介紹了Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn),頁面靜態(tài)化是將原來的動(dòng)態(tài)網(wǎng)頁改為通過靜態(tài)化技術(shù)生成的靜態(tài)網(wǎng)頁,FreeMarker?是一個(gè)用?Java?語言編寫的模板引擎,它基于模板來生成文本輸,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-06-06
  • Java對(duì)象不使用時(shí)賦值null的意義詳解

    Java對(duì)象不使用時(shí)賦值null的意義詳解

    這篇文章主要介紹了java對(duì)象不再使用時(shí)賦值null的意義,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 在Java中對(duì)List進(jìn)行分區(qū)的實(shí)現(xiàn)方法

    在Java中對(duì)List進(jìn)行分區(qū)的實(shí)現(xiàn)方法

    在本文中,我們將說明如何將一個(gè)列表拆分為多個(gè)給定大小的子列表,也就是說在 Java 中如何對(duì)List進(jìn)行分區(qū),文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • IDEA上面搭建一個(gè)SpringBoot的web-mvc項(xiàng)目遇到的問題

    IDEA上面搭建一個(gè)SpringBoot的web-mvc項(xiàng)目遇到的問題

    這篇文章主要介紹了IDEA上面搭建一個(gè)SpringBoot的web-mvc項(xiàng)目遇到的問題小結(jié),需要的朋友可以參考下
    2017-04-04
  • 詳解Spring Boot整合Mybatis實(shí)現(xiàn) Druid多數(shù)據(jù)源配置

    詳解Spring Boot整合Mybatis實(shí)現(xiàn) Druid多數(shù)據(jù)源配置

    本篇文章主要介紹了詳解Spring Boot整合Mybatis實(shí)現(xiàn) Druid多數(shù)據(jù)源配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存

    基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存

    本文主要介紹了基于Spring?Cache實(shí)現(xiàn)Caffeine+Redis二級(jí)緩存,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 如何解決Idea斷點(diǎn)調(diào)試亂跳的問題

    如何解決Idea斷點(diǎn)調(diào)試亂跳的問題

    這篇文章主要介紹了如何解決Idea斷點(diǎn)調(diào)試亂跳的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié)

    java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié)

    這篇文章主要介紹了java?9大性能優(yōu)化經(jīng)驗(yàn)總結(jié),包括:Java代碼優(yōu)化,數(shù)據(jù)庫優(yōu)化,分布式緩存,異步化,Web前段,搜索引擎優(yōu)化等需要的朋友可以參考下
    2023-02-02

最新評(píng)論