一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - springboot整合spring-data-redis遇到的坑

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

2020-09-18 14:20super-wen JAVA教程

使用springboot整合redis,使用默認的序列化配置,然后使用redis-client去查詢時查詢不到相應的key.問題出在哪,怎么解決呢?下面小編給大家帶來了springboot整合spring-data-redis遇到的坑,需要的的朋友參考下吧

描述

使用springboot整合redis,使用默認的序列化配置,然后使用redis-client去查詢時查詢不到相應的key.

使用工具發現,key的前面多了\xAC\xED\x00\x05t\x00!這樣一個串.

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

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

問題所在

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
 }

解決

手動設置key的序列化方式為StringRedisSerializer,強制使用.

由于spring不支持泛型注入,這樣會導致所有的redisTemplate的key序列方式都為StringRedisSerializer. 同時,最好在序列化對象保存時候手動將其轉為json串后存入redis.易于在可視化工具中直接查看對應value

?
1
2
3
4
5
6
7
8
@Bean
  public RedisTemplate<String, ?> redisTemplate(RedisConnectionFactory factory) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
    redisTemplate.setConnectionFactory(factory);
    RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();//Long類型不可以會出現異常信息;
    redisTemplate.setKeySerializer(stringRedisSerializer);
    return redisTemplate;
  }

以上所述是小編給大家介紹的springboot整合spring-data-redis遇到的坑,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://my.oschina.net/u/2309077/blog/885879

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无人在线观看免费高清视频播放 | 国产精品刺激好大好爽视频 | 男人操美女视频 | 日韩精品亚洲一级在线观看 | 欧美日韩国产在线人成dvd | 国产精品视频免费看 | 欧美一卡2卡3卡四卡海外精品 | 波多野结衣女教师在线观看 | 亚洲成人一区在线 | 波多洁野衣一二区三区 | 出a级黑粗大硬长爽猛视频 吃胸膜奶视频456 | 色综合久久丁香婷婷 | 国产欧美精品 | 免费一级国产大片 | 欧美成人午夜片一一在线观看 | 99热精品国产麻豆 | 女同志freelesvoices | 国产成人综合一区人人 | a级毛片毛片免费观看永久 a级黄色片免费 | 国产成人精品三级在线 | 亚洲v日韩v欧美在线观看 | 女上男下gifxxoo动态视频 | 亚洲精品色婷婷在线影院麻豆 | 久青草国产97香蕉在线视频 | 国产色资源 | 国产精品成人亚洲 | 东北疯狂xxxxbbbb中国 | 精品一区二区三区免费站 | 91亚洲一区二区在线观看不卡 | 亚洲视频久久 | 免费观看在线永久免费xx视频 | 色悠久久久久综合欧美99 | 日产精品一卡2卡三卡4乱码久久 | 国产资源中文字幕 | 国产二区精品视频 | 白丝超短裙被输出娇喘不停小说 | 波多野结衣在线免费观看 | 国产专区亚洲欧美另类在线 | 色综合伊人色综合网站中国 | 成人深夜视频 | 国产精品久久久久久久久久久搜索 |