• Redis缓存 序列化对象存储乱码问题


    使用Redis缓存对象会出现下图现象:

    键值对都是乱码形式。

    解决以上问题:

    如果是xml配置

    我们直接注入官方给定的keySerializer,valueSerializer,hashKeySerializer即可:

     1 <bean id="apiRedisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
     2         p:connection-factory-ref="apiCacheRedisConnectionFactory">
     3         <property name="keySerializer">
     4             <bean
     5                 class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
     6         </property>
     7         <property name="valueSerializer">
     8             <bean
     9                 class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
    10         </property>
    11 
    12         <property name="hashKeySerializer">
    13             <bean
    14                 class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
    15         </property>
    16         <property name="hashValueSerializer">
    17             <bean
    18                 class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />
    19         </property>
    20         <property name="stringSerializer">
    21             <bean
    22                 class="org.springframework.data.redis.serializer.StringRedisSerializer" />
    23         </property>
    24     </bean>

    spring boot 项目配置RedisConfig的时候使用以下方法:

     1 @Configuration
     2 public class RedisConfig {
     3     @Bean("jsonRedisTemplate")
     4     public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
     5             throws UnknownHostException {
     6         RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
     7         template.setConnectionFactory(redisConnectionFactory);
          //解决日期序列化问题
    8 ObjectMapper om = new ObjectMapper(); 9 om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")); 10 GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om); 11 template.setDefaultSerializer(genericJackson2JsonRedisSerializer); 12 return template; 13 14 } 15 }
  • 相关阅读:
    JAVA之数组
    Linux之判断字符串是否为空
    Python之操作HBASE数据库
    【转】Linux之crontab定时任务命令
    Python之shutil模块(复制移动文件)
    JAVA之列表集合ArrayList
    Python之多线程多进程
    前端之Javascript
    前端之DOM操作
    【转】写一个简单的爬虫来批量爬取新浪网的新闻
  • 原文地址:https://www.cnblogs.com/zhuzhen/p/8125793.html
Copyright © 2020-2023  润新知