redis系列之踩坑:\xAC\xED\x00\x05t\x00\x08乱码问题

> 插: AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

坚持不懈,越努力越幸运,大家一起学习鸭~~~

问题:

在SpringBoot中使用RedisTemplate操作redis时,会出现\xAC\xED\x00\x05t\x00\x08这种乱码问题,特别是在使用中文时。

原因分析:

原因是因为RedisTemplate中key和value的序列化方式都默认使用了jdk的序列化方式,含有中文时就会出现乱码。想要解决乱码问题我们只需要将key和value的序列化方式分别修改为字符串和json的形式即可。

我们增加一个RedisConfig类,用来对RedisTemplate的序列化方式进行修改:

复制代码
@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);

        // 设置key的序列化规则和value的序列化规则
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }

}

问题解决,可以写几个单元测试方法测试一下。

相关推荐
Mr. Cao code3 分钟前
Docker数据管理:持久化存储最佳实践
java·docker·容器
强子感冒了7 分钟前
Java 学习笔记:File类核心API详解与使用指南
java·笔记·学习
spencer_tseng18 分钟前
eclipse ALT+SHIFT+A
java·ide·eclipse
vyuvyucd18 分钟前
C++排序算法全解析
java·数据结构·算法
BD_Marathon32 分钟前
SpringBoot程序快速启动
java·spring boot·后端
stillaliveQEJ37 分钟前
【JavaEE】Spring IoC(二)
java·开发语言·spring
寻星探路42 分钟前
【Python 全栈测开之路】Python 基础语法精讲(一):常量、变量与运算符
java·开发语言·c++·python·http·ai·c#
行百里er1 小时前
代码跑得慢?让Spring的StopWatch告诉你真相!
java·后端·github
又是忙碌的一天1 小时前
SpringMVC响应
java·服务器·数据库
万物皆字节1 小时前
Spring Cloud Gateway 启动流程源码分析
java·开发语言·spring boot