一、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的原因和解决方法相关推荐

  1. java redis存储键值包含\xac\xed\x00\x05t\x00\特殊字符

    java RedisTemplate操作redis后,想看一下是否成功, 就redis-cli执行:keys * "\xac\xed\x00\x05t\x00\x04name" & ...

  2. redis键值出现 \xac\xed\x00\x05t\x00的解决方法!!

    redis键值出现 \xac\xed\x00\x05t\x00&的解决方法 BUT!BUT!BUT! 以上三种方法都尝试过了.均无效果 最后发现是因为RedisTemplate得配置类没有被s ...

  3. redis键值出现 \xac\xed\x00\x05t\x00的解决方法

    笔者在使用redis存放键值对时,发现存放的key和value多了\xac\xed\x00\x05t\x00&的前缀,笔者存放的是字符串,结果如下图所示,出现非预期的前缀. 出现该问题的原因是 ...

  4. Spring集成Redis键值乱码\xac\xed\x00\x05t\x00\tb

    目录 一.Spring集成Redis键值乱码 二.解决方法 三.问题分析 一.Spring集成Redis键值乱码 Spring集成Redis设置缓存数据时,发现键值乱码 设置的key前面有乱码\xac ...

  5. 在jQuery中,a标签trigger触发click不起作用的原因和解决方法

    最近在项目中发现,用jq的trigger无法触发a标签的click事件.我的代码如下: $('a').trigger('click') 查阅资料发现: jquery trigger把(type === ...

  6. Python中出现“TabError: inconsistent use of tabs and spaces in indentation”原因和解决方法

    初学python,很多调试都会出现 "TabError: inconsistent use of tabs and spaces in indentation" 这个错误,看着明显 ...

  7. redis键和值出现乱码问题 \xac\xed\x00\x05t\x00$

    大家好我第一次写文章,如果有错误请多多指正,可以加微信讨论问题wx:w18013425493,请大哥们轻点. 今天我们来说一下使用RedisTemplate.opsForValue()和RedisTe ...

  8. 解决Spring Boot 使用RedisTemplate 存储键值出现乱码 \xac\xed\x00\x05t\x00

    最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\ ...

  9. Redis Desktop Manager中出现\xAC\xED\x00\x05t\x00乱码问题

    问题 最近在使用Redis Tmeplate保存到Redis过程中出现了,以\xAC\xED\x00\x05t\x00\x12开头的乱码问题,具体如下图: 原因 其实就是,下面两个Redis配置注解不 ...

最新文章

  1. C++引入名字空间(namespace)意义何在?为什么using namespace std会成为常用语句?
  2. PCL—点云分割(基于凹凸性) 低层次点云处理
  3. 每天一道LeetCode-----寻找二叉搜索树中第k小的元素
  4. DXperience,不能不爱
  5. 总结:JDK1.5-JDK1.8各个新特性
  6. arcgis server for .NET学习转载5
  7. php imap 附件,学习猿地-PHP-imap 使用参考
  8. hibernate 的第一个工程
  9. Linux 内核版本命名
  10. 六石编程学:方便调试输出的标准C代码
  11. Chrome 地址栏如何设置显示 http/https 和 www
  12. 未来教育c语言题库百度云,未来教育计算机c语言二级题库(操作题).docx
  13. StataIC——协整检验与误差修正模型
  14. 微型计算机初级证书,什么是计算机初级证书
  15. Python快速实现人脸识别
  16. 服务器系统xb21cn,Office2010/2016精简三合一版(xb21cn-0901版)
  17. 使用gdb调试Android(aarch 64)可执行二进制文件
  18. 工地wifi覆盖解决方案怎么样
  19. 02 Spring标签解析-BeanDefinitionParser
  20. 怎么将简历和个人作品做成二维码?个人资料如何转二维码?

热门文章

  1. oracle中恢复表数据恢复,oracle进行表数据恢复
  2. 40道Java多线程面试真题及答案
  3. 深度特征融合---高低层(多尺度)特征融合
  4. 谈古论津丨八里台聂公桥
  5. Bq769XX IIC 通讯 ALERT引脚
  6. ncae的c语言编程高阶怎么考,NCAE考试科目..doc
  7. JAVA虚拟机的安装以及JAVA的环境配置
  8. 插板法、捆绑法、插空法
  9. 大型电商实战项目,助力2021年高薪
  10. Commvault斥资2.25亿美元收购Hedvig进行二次创业