解决 redis 的 key 出现的 \xac\xed\x00\x05t\x00 乱码问题
今天在使用redis进行token的存取的时候,发现了一个严重的问题,那便是根据键获取值的时候一直拿不到,其实已经set进去了。
然后使用redis客户端,遍历所有的键的时候,发现键中有类似 \xac\xed\x00\x05t\x00 的乱码,如下图
原因分析:
spring-data-redis 的 RedisTemplate<K, V>模板类 在操作redis时默认使用JdkSerializationRedisSerializer 来进行序列化。spring操作redis是在jedis客户端基础上进行的,而jedis客户端与redis交互的时候协议中定义是用byte类型交互,看到spring-data-redis中RedisTemplate<K, V>在操作的时候k,v是泛型对象,而不是byte[]类型的,
这样导致的一个问题就是,如果不对RedisTemplate进行设置,spring会默认采用defaultSerializer = new JdkSerializationRedisSerializer();这个方法来对key、value进行序列化操作,JdkSerializationRedisSerializer它使用的编码是ISO-8859-1
解决办法一:在使用时,规定redisTemplate的类型
@Autowired
private RedisTemplate<String,String> redisTemplate
解决办法二:添加 redis 配置类,配置使用的序列化方式
/*** @author linzp* @version 1.0.0* CreateDate 2020/8/18 22:26*/
@Configuration
public class RedisConfig {@Bean(name = "redisTemplate")public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<Object, Object> template = new RedisTemplate<>();RedisSerializer<String> redisSerializer = new StringRedisSerializer();template.setConnectionFactory(factory);//key序列化方式template.setKeySerializer(redisSerializer);//value序列化template.setValueSerializer(redisSerializer);//value hashmap序列化template.setHashValueSerializer(redisSerializer);//key haspmap序列化template.setHashKeySerializer(redisSerializer);return template;}
}
解决方法三:使用 StringRedisTemplate 而不是使用 RedisTemplate
解决后,验证结果如下图:
问题到此得已解决~
解决 redis 的 key 出现的 \xac\xed\x00\x05t\x00 乱码问题相关推荐
- RedisTemplate设置redis的key时出现\xac\xed\x00\x05t\x00\x0f前缀
1.问题描述 使用redisTemplate设置redis的key-value,程序运行没有问题,但是却在redis客户端查不到设置的key-value. 2.产生原因 出现这种乱码前缀的原因是没有进 ...
- redis key/value 前面出现\xac\xed\x00\x05t\x00\x06 已解决
最近写项目时遇到的一个问题,当我向 redis 中 set 数据的时候 key 和 value出现\xac\xed\x00\x05t\x00\x06这些乱码,问题如图: 原因:spring-data- ...
- Redis整合SpringBoot,出现“\xac\xed\x00\x05t\x00\x03解决自定义RedisTemplate序列化
SpringBoot整合 SpringBoot操作数据:spring-data jpa jdbc mongodb redis SpringData也是和SpringBoot齐名的项目 说明:在Spri ...
- redis键值出现 \xac\xed\x00\x05t\x00的解决方法
笔者在使用redis存放键值对时,发现存放的key和value多了\xac\xed\x00\x05t\x00&的前缀,笔者存放的是字符串,结果如下图所示,出现非预期的前缀. 出现该问题的原因是 ...
- springboot 集成redis key乱码\xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD
文章目录 场景 分析 解决 场景 springboot集成redis集群 检查key时发现key是二进制格式的 \xac\xed\x00\x05t\x00\x0eHAOKE_HOT_WORD 分析 R ...
- redis中键值出现 \xAC\xED\x00\x05t\x00\x11的原因和解决方法
一.redis中键值出现乱码情况 1.1 问题描述 1.1.1 使用SpringBoot项目结合redis做缓存,发现redis客户端工具中db0库key为USER_USER_ID_1000的前缀出现 ...
- 【springboot】redisTemplate Redis key出现\xac\xed\x00\x05t\x00
现象 springboot项目使用redisTemplate整合redis,测试写入字符串类型的key.value,通过redis可视化工具观察redis存储数据,发现key不符合测试预期,出现\xa ...
- FAQ:redis key/value 前面出现\xAC\xED\x00\x05t\x00\x05
1.问题现象: 最近使用spring-data-redis 和jedis 操作redis时发现存储在redis中的key不是程序中设置的string值,前面还多出了许多类似\xac\xed\x00\x ...
- redis键值出现 \xac\xed\x00\x05t\x00的解决方法!!
redis键值出现 \xac\xed\x00\x05t\x00&的解决方法 BUT!BUT!BUT! 以上三种方法都尝试过了.均无效果 最后发现是因为RedisTemplate得配置类没有被s ...
- SpringBoot集成Redis解决乱码问题 - \xAC\xED\x00\x05t\x00
SpringBoot集成Redis解决乱码问题 - \xAC\xED\x00\x05t\x00 SpringBoot集成Redis解决乱码问题 问题概述 使用redisTemplate.opsForV ...
最新文章
- 公司用了 6 年的分布式锁,很是牛逼啊!
- TThread深入分析
- 关于使用asp.net调试器出现的问题及相关解决方法
- oracle 创建视图时提示自定义的函数功能名不管用_PCS 7 CFC的常用功能与操作
- Java动态代理之InvocationHandler最简单的入门教程
- “幕后英雄”之Backing Fields【Microsoft Entity Framework Core随笔】
- 手把手教你用java完成文件、图片下载
- (转载)tomcat5下jsp出现getOutputStream() has already been called for this
- MySQL Replication主主复制—(实例)
- 简单游戏(easygame)
- 安装SQL Server2012报Microsoft.NET Framework4无法安装错误解决方案
- ISO7637-2瞬态浪涌波形详解
- masm5 0的使用介绍
- 哈佛幸福课个人使用精华
- 联想rd650怎么装系统win7_ThinkServer - RD650 - RAID及系统安装 - 图文
- Rasa 3.x 学习系列- 内网环境部署Docker及Rasa duckling、Redis
- zblogphp登录和注册_基于PHP的登录和注册的功能的实现
- 【项目实战】Python基于OpenCV和卷积神经网络CNN进行车牌号码识别项目实战
- SATA3.0中FIS的八种类型
- powershell配置anaconda及解决【无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本】的问题