zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    上海上传数据重复-sftp端口关闭
    探索对象池技术
    java对象池commons-pool-1.6详解(一)
    SSH 协议的 ssh StrictHostKeyChecking
    FTP、FTPS和SFTP
    android 模拟器无法ping通主机
    Android中判断网络连接是否可用及监控网络状态
    Android模拟器怎么配置网络连通
    Android Studio调试报错am startservice
    Jni的Jclass JmethodID JfrieldID的差异
  • 原文地址:https://www.cnblogs.com/zhuzhen/p/8125793.html
Copyright © 2011-2022 走看看