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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品无码中文字满 | 福利国模私拍视频在线观看 | 能播放的欧美同性videos | aⅴ视频在线免播放观看 | 欧洲美女人牲交一级毛片 | 四虎www | 好大好粗好舒服 | 国内精品久久久久香蕉 | 高清一区二区 | 欧美 国产 日韩 第一页 | 视频在线精品 | 无码11久岁箩筣 | 日本粉色视频 | 女人张开腿让男人桶爽 | 亚洲人成高清毛片 | 色久久一个亚洲综合网 | 胸大的姑娘中文字幕视频 | 青草视频网站在线观看 | 丰满艳妇亲伦视频 | 精品国产乱码久久久久久免费流畅 | bestialityvideo另类| 亚洲欧美久久婷婷爱综合一区天堂 | 秋霞午夜视频在线观看 | 农村妇女野战bbxxx | 色依依视频视频在线观看 | 亚洲一区二区三区久久精品 | 久草热在线| 亚洲国产成人超福利久久精品 | 精品国产mmd在线观看 | 99re免费在线视频 | 91成人免费视频 | 国产女主播在线播放一区二区 | 亚洲AV无码乱码在线观看浪潮 | 色综合久久98天天综合 | 色佬头| 国色天香 社区视频 | 国产精品免费久久久久影院 | 国产成人综合久久精品红 | 果冻传媒mv在线观看入口免费 | 日本动漫黄网站在线观看 | 国语第一次处破女 |