• RedisTemplate乱码问题


    其实这是在解决一个项目问题是发现的,因为原开发者的大意,造成了系统出现严重的逻辑问题。

    因为系统系统采用分模块开发,某模块使用Spring提供的RedisTemplate进行值的读写,另一位使用了框架基于Jedis的一套公用方法进行值的读写,出现的问题就是写入的值,后面读取不到进而进行了无值判断逻辑。

    那么是读取不到吗,我使用RDM客户端查看,发现出现了一堆键值都是乱码的内容

    然后在代码中加入以下代码:

    1. package com.example.springboot.config;
    2. import com.fasterxml.jackson.annotation.JsonAutoDetect;
    3. import com.fasterxml.jackson.annotation.PropertyAccessor;
    4. import com.fasterxml.jackson.databind.ObjectMapper;
    5. import org.springframework.context.annotation.Bean;
    6. import org.springframework.context.annotation.Configuration;
    7. import org.springframework.data.redis.connection.RedisConnectionFactory;
    8. import org.springframework.data.redis.core.RedisTemplate;
    9. import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    10. import org.springframework.data.redis.serializer.StringRedisSerializer;
    11. @Configuration
    12. public class RedisConfig {
    13. @Bean
    14. public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
    15. RedisTemplate redisTemplate = new RedisTemplate();
    16. redisTemplate.setConnectionFactory(redisConnectionFactory);
    17. Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
    18. ObjectMapper objectMapper = new ObjectMapper();
    19. objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    20. objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    21. jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
    22. //重点在这四行代码
    23. redisTemplate.setKeySerializer(new StringRedisSerializer());
    24. redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
    25. redisTemplate.setHashKeySerializer(new StringRedisSerializer());
    26. redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
    27. redisTemplate.afterPropertiesSet();
    28. return redisTemplate;
    29. }
    30. }

    再存入redis就对了

  • 相关阅读:
    【字符串】特殊的二进制序列 递归+排序
    MC-4/11/10/400 ELAU 操作员界面旨在帮助优化系统开发
    【一起学Rust | 进阶篇 | Grid库】二维表数据结构——Grid
    FastGpt流程
    Linux系统安装Node.js步骤
    RHCE学习 --- 第二次作业
    使用@RestControllerAdvice统一处理@ResponseBody的返回前端数据
    JTAG 详解
    上周热点回顾(5.20-5.26)
    第 117 场 LeetCode 双周赛题解
  • 原文地址:https://blog.csdn.net/Amelia__Liu/article/details/134425989