redis中键值出现 \xAC\xED\x00\x05t\x00\x11的原因和解决方法
一、redis中键值出现乱码情况
1.1 问题描述
1.1.1 使用SpringBoot项目结合redis做缓存,发现redis客户端工具中db0库key为USER_USER_ID_1000的前缀出现了\xAC\xED\x00\x05t\x00\x11乱码现象,如下图所示。
1.2 问题原因
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
1.3 解决办法
private RedisTemplate<String, Object> redisTemplate;//指定用redis的序列化方式进行序列化@Autowired(required = false)public void setRedisTemplate(RedisTemplate<String,Object> redisTemplate) {RedisSerializer stringSerializer = new StringRedisSerializer();//序列化为String//不能反序列化//Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);//序列化为JsonGenericJackson2JsonRedisSerializer serializer = new GenericJackson2JsonRedisSerializer();redisTemplate.setKeySerializer(stringSerializer);redisTemplate.setValueSerializer(serializer);redisTemplate.setHashKeySerializer(stringSerializer);redisTemplate.setHashValueSerializer(serializer);this.redisTemplate = redisTemplate;}
重启项目,发送请求redis客户端的key和value出现正确结果,如下图所示。
redis中键值出现 \xAC\xED\x00\x05t\x00\x11的原因和解决方法相关推荐
- java redis存储键值包含\xac\xed\x00\x05t\x00\特殊字符
java RedisTemplate操作redis后,想看一下是否成功, 就redis-cli执行:keys * "\xac\xed\x00\x05t\x00\x04name" & ...
- redis键值出现 \xac\xed\x00\x05t\x00的解决方法!!
redis键值出现 \xac\xed\x00\x05t\x00&的解决方法 BUT!BUT!BUT! 以上三种方法都尝试过了.均无效果 最后发现是因为RedisTemplate得配置类没有被s ...
- redis键值出现 \xac\xed\x00\x05t\x00的解决方法
笔者在使用redis存放键值对时,发现存放的key和value多了\xac\xed\x00\x05t\x00&的前缀,笔者存放的是字符串,结果如下图所示,出现非预期的前缀. 出现该问题的原因是 ...
- Spring集成Redis键值乱码\xac\xed\x00\x05t\x00\tb
目录 一.Spring集成Redis键值乱码 二.解决方法 三.问题分析 一.Spring集成Redis键值乱码 Spring集成Redis设置缓存数据时,发现键值乱码 设置的key前面有乱码\xac ...
- 在jQuery中,a标签trigger触发click不起作用的原因和解决方法
最近在项目中发现,用jq的trigger无法触发a标签的click事件.我的代码如下: $('a').trigger('click') 查阅资料发现: jquery trigger把(type === ...
- Python中出现“TabError: inconsistent use of tabs and spaces in indentation”原因和解决方法
初学python,很多调试都会出现 "TabError: inconsistent use of tabs and spaces in indentation" 这个错误,看着明显 ...
- redis键和值出现乱码问题 \xac\xed\x00\x05t\x00$
大家好我第一次写文章,如果有错误请多多指正,可以加微信讨论问题wx:w18013425493,请大哥们轻点. 今天我们来说一下使用RedisTemplate.opsForValue()和RedisTe ...
- 解决Spring Boot 使用RedisTemplate 存储键值出现乱码 \xac\xed\x00\x05t\x00
最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\ ...
- Redis Desktop Manager中出现\xAC\xED\x00\x05t\x00乱码问题
问题 最近在使用Redis Tmeplate保存到Redis过程中出现了,以\xAC\xED\x00\x05t\x00\x12开头的乱码问题,具体如下图: 原因 其实就是,下面两个Redis配置注解不 ...
最新文章
- C++引入名字空间(namespace)意义何在?为什么using namespace std会成为常用语句?
- PCL—点云分割(基于凹凸性) 低层次点云处理
- 每天一道LeetCode-----寻找二叉搜索树中第k小的元素
- DXperience,不能不爱
- 总结:JDK1.5-JDK1.8各个新特性
- arcgis server for .NET学习转载5
- php imap 附件,学习猿地-PHP-imap 使用参考
- hibernate 的第一个工程
- Linux 内核版本命名
- 六石编程学:方便调试输出的标准C代码
- Chrome 地址栏如何设置显示 http/https 和 www
- 未来教育c语言题库百度云,未来教育计算机c语言二级题库(操作题).docx
- StataIC——协整检验与误差修正模型
- 微型计算机初级证书,什么是计算机初级证书
- Python快速实现人脸识别
- 服务器系统xb21cn,Office2010/2016精简三合一版(xb21cn-0901版)
- 使用gdb调试Android(aarch 64)可执行二进制文件
- 工地wifi覆盖解决方案怎么样
- 02 Spring标签解析-BeanDefinitionParser
- 怎么将简历和个人作品做成二维码?个人资料如何转二维码?