[转帖]SpringBoot之RedisTemplate操作redis出现\xAC\xED\x00\x05t\x00\x08乱码问题

springboot,redistemplate,操作,redis,出现,xac,xed,x00,x05t,x08,乱码,问题 · 浏览次数 : 0

小编点评

**问题原因:** 在Spring Boot中使用 `RedisTemplate` 操作 Redis 时,由于默认的序列化方式为 Jdk序列化,会导致 key 和 value 的序列化顺序错误导致乱码问题。 **解决方案:** 1. **指定 key 和 value 的序列化方式**: - 将 `RedisTemplate` 的 `setKeySerializer()` 和 `setValueSerializer()` 设置为字符串序列化器 `StringRedisSerializer` 和 JSON序列化器 `GenericJackson2JsonRedisSerializer`。 **修改代码:** ```java @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置 key 和 value 的序列化规则 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); // 其他设置 ... return redisTemplate; } ``` **单元测试:** ```java @Test public void testRedisTemplate() { // 使用 RedisTemplate 操作 Redis // ... // 确保 key 和 value 的序列化方式正常 Assert.assertEquals("key", "value", redisTemplate.opsForValue().get("key")); } ``` **总结:** 通过指定 `StringRedisSerializer` 和 `GenericJackson2JsonRedisSerializer` 的序列化方式,可以解决 `\\xAC\\xED\\x00\\x05t\\x00\\x08` 等乱码问题。

正文

http://qclog.cn/1118

 

在SpringBoot中使用RedisTemplate操作redis时,会出现\xAC\xED\x00\x05t\x00\x08这种乱码问题,特别是在使用中文时。原因是因为RedisTemplate中key和value的序列化方式都默认使用了jdk的序列化方式,想要解决乱码问题我们只需要将key和value的序列化方式分别修改为字符串和json的形式即可。

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

复制代码
  1. @Configuration
  2. public class RedisConfig {
  3. @Bean
  4. public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
  5. RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
  6. redisTemplate.setConnectionFactory(redisConnectionFactory);
  7. // 设置key的序列化规则和value的序列化规则
  8. redisTemplate.setKeySerializer(new StringRedisSerializer());
  9. redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
  10. redisTemplate.afterPropertiesSet();
  11. return redisTemplate;
  12. }
  13. }

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

代码:https://gitee.com/lqccan/blog-demo/tree/master/SpringBoot/redis-serializer
单元测试:DemoApplicationTest

与[转帖]SpringBoot之RedisTemplate操作redis出现\xAC\xED\x00\x05t\x00\x08乱码问题相似的内容:

[转帖]SpringBoot之RedisTemplate操作redis出现\xAC\xED\x00\x05t\x00\x08乱码问题

http://qclog.cn/1118 在SpringBoot中使用RedisTemplate操作redis时,会出现\xAC\xED\x00\x05t\x00\x08这种乱码问题,特别是在使用中文时。原因是因为RedisTemplate中key和value的序列化方式都默认使用了jdk的序列化方

[转帖]Redis key 乱码问题(springboot)

保存到redis中的key 前半段会出现乱码问题 原来配置: @Configuration@EnableCachingpublic class RedisCacheConfig { @Bean public CacheManager cacheManager(RedisTemplate

[转帖]SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!

2022-02-27 分类:Java 阅读(1872) 评论(0) GitHub 24k Star 的Java工程师成神之路,不来了解一下吗! 最近,有很多人再传说 SpringBoot要出3.0的版本了,并且宣布不再支持 Java 8,最低要求是 Java 17了。 其实,早在2021年9月份,关

[转帖]Spring Boot 依赖包及作用

目录 作者:@dwtfukgv本文为作者原创,转载请注明出处:https://www.cnblogs.com/dwtfukgv/articles/10179922.html Spring Boot 之Spring Boot Starter依赖包及作用 spring-boot-starter这是Spr

[转帖]Springboot 集成 micrometer(actuator/prometheus) 接口报 404

https://blog.csdn.net/qq_26545503/article/details/123313891 原因 主要是spring-boot版本和micrometer版本没有对应上,我用的spring-boot是2.6.0对应的micrometer就是1.8 需要修改两个地方 pom.

[转帖]springboot连接redis cluster(带密码)

https://www.cnblogs.com/fengzi7314/p/15427669.html RedisConfig配置内容如下: package com.example.demo5.config; import org.springframework.beans.factory.annot

[转帖]springboot指定端口的三种方式

https://blog.51cto.com/feirenraoyuan/5504099 第一配置文件中添加server.port=9090 第二在命令行中指定启动端口,比如传入参数 java -jar bootsample. jar -- server.port=9000 第三传入虚拟机系统属性

[转帖]Springboot容器化镜像设置堆内存大小

参考资料:Best Practices: Java Memory Arguments for Containers - DZone Java 有三种方式设置最大堆内存大小: 1. -Xmx 2. -XX:MaxRAMFraction, -XX:MinRAMFraction 3.-XX:MaxRAMP

[转帖]Springboot配置https访问

https://www.cnblogs.com/feifuzeng/p/14709372.html 介绍 该篇博文主要介绍如何配置Springboot使其打包部署的服务必须通过HTTPS协议才可访问,仅供内部研究使用。 生成https证书 要使用https,首先需要ssl证书,获取SSL证书有两种方

[转帖]SpringBoot配置SSL 坑点总结【密码验证失败、连接不安全】

文章目录 前言1.证书绑定问题2.证书和密码不匹配3.yaml配置文件问题3.1 解密类型和证书类型是相关的3.2 配置文件参数混淆 后记 前言 在SpringBoot服务中配置ssl,无非就是下载证书设置一下配置文件的问题,这里主要记录我在配置的过程中遇到的坑点。 如果是新手上道的话建议结合其他的