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;
    }

}

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

相关推荐
Jabes.yang12 小时前
Java求职面试: 互联网医疗场景中的缓存技术与监控运维应用
java·redis·spring security·grafana·prometheus·oauth2·互联网医疗
摇滚侠13 小时前
Spring Boot 3零基础教程,yml配置文件,笔记13
spring boot·redis·笔记
初级炼丹师(爱说实话版)13 小时前
内存泄漏与内存溢出
java
CryptoRzz13 小时前
越南k线历史数据、IPO新股股票数据接口文档
java·数据库·后端·python·区块链
!if13 小时前
springboot mybatisplus 配置SQL日志,但是没有日志输出
spring boot·sql·mybatis
学Java的bb13 小时前
MybatisPlus
java·开发语言·数据库
讓丄帝愛伱13 小时前
Mybatis Log Free插件使用
java·开发语言·mybatis
重生之我要当java大帝13 小时前
java微服务-尚医通-编写医院设置接口上
java·数据库·微服务
夫唯不争,故无尤也13 小时前
Tomcat 内嵌启动时找不到 Web 应用的路径
java·前端·tomcat
心之伊始13 小时前
Netty线程模型与Tomcat线程模型对比分析
java·开发语言