最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下
127.0.0.1:6379> keys *

  1. “\xac\xed\x00\x05t\x00\x04pass”
  2. “\xac\xed\x00\x05t\x00\x04name”
  3. “name”

spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,如下

private boolean enableDefaultSerializer = true;
private RedisSerializer<?> defaultSerializer = new JdkSerializationRedisSerializer();
private RedisSerializer keySerializer = null;
private RedisSerializer valueSerializer = null;
private RedisSerializer hashKeySerializer = null;
private RedisSerializer hashValueSerializer = null;
解决方法:更改序列化方式

private RedisTemplate redisTemplate;

@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
this.redisTemplate = redisTemplate;
}
补充:也可直接使用 StringRedisTemplate ,下附redis的缓存配置,可做参考

/**

  • ===================================

  • 描 述 : Redis + Spring Cache 整合增强

  • 包 名 : top.qinxq.single.config

  • 创建人 : qinxq

  • ===================================
    */
    @Configuration
    @EnableCaching
    @SuppressWarnings(“unchecked”)
    public class RedisCacheConfig extends CachingConfigurerSupport {
    @Value("${redis.cache.expiration:60}")
    private long expiration;

    @Bean
    CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
    // 配置序列化(解决乱码的问题)
    RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
    .entryTtl(Duration.ofSeconds(expiration))
    .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerialize()))
    .disableCachingNullValues();

     return RedisCacheManager.builder(connectionFactory).cacheDefaults(config).build();
    

    }

    @Bean
    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
    StringRedisTemplate template = new StringRedisTemplate(factory);
    template.setValueSerializer(jackson2JsonRedisSerialize());
    template.afterPropertiesSet();
    return template;
    }

    private Jackson2JsonRedisSerializer jackson2JsonRedisSerialize(){
    Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
    ObjectMapper om = new ObjectMapper();
    om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
    om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    jackson2JsonRedisSerializer.setObjectMapper(om);
    return jackson2JsonRedisSerializer;
    }
    }

解决Spring Boot 使用RedisTemplate 存储键值出现乱码 \xac\xed\x00\x05t\x00相关推荐

  1. 解决Spring boot中读取属性配置文件出现中文乱码的问题

    解决Spring boot中读取属性配置文件出现中文乱码的问题 参考文章: (1)解决Spring boot中读取属性配置文件出现中文乱码的问题 (2)https://www.cnblogs.com/ ...

  2. redis的键值中出现\xac\xed\x00\x05t\x00\这些的乱码问题

    这里是因为,springboot默认的redis的序列化机制为 JdkSerializationRedisSerializer if (enableDefaultSerializer) {if (ke ...

  3. Reids简直存储,key以“\xAC\xED\x00\x05t\x00“开头

    1.问题描述 使用RedisTemplate进行redis缓存时时发现存储在redis中的key前面多出:\xac\xed\x00\x05t\x00,如下 出现该问题的原因是, redis templ ...

  4. redis 值字符串前面部分乱码_解决spring boot redis序列化key-value乱码

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

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

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

  6. 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp

    解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp ...

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

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

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

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

  9. redis中键值出现 \xAC\xED\x00\x05t\x00\x11的原因和解决方法

    一.redis中键值出现乱码情况 1.1 问题描述 1.1.1 使用SpringBoot项目结合redis做缓存,发现redis客户端工具中db0库key为USER_USER_ID_1000的前缀出现 ...

最新文章

  1. 北京/上海/深圳内推 | 百度视觉技术团队招聘视觉/3D算法工程师
  2. 【系列】EOS开发1 开发环境搭建
  3. 石川es6课程---5、函数-参数
  4. elf section类型_在 498 行极小 OS 上跑标准 ELF 程序
  5. SpringBoot实现定时任务
  6. 第5章 Python 数字图像处理(DIP) - 图像复原与重建7 - 周期噪声 余弦噪声生成方法
  7. Linux常用初级指令介绍
  8. seaborn分布数据可视化:直方图|密度图|散点图
  9. 工作48:$emit
  10. jquery easyui-----------tree
  11. Git教程_1 简介
  12. Rational Rose和UML可视化建模基础
  13. Android版本历史变迁
  14. VBScript 程序员参考手册 读书笔记08-
  15. word插入公式/endnote
  16. JAVA语言基础——基本语法
  17. zynq uart0和uart1设置
  18. 外网如何访问内网/局域网网站【内网穿透】
  19. Javalin:一个轻量的 Web Framework
  20. 【问题记录】js 更改数组中某字段名

热门文章

  1. 截流式合流制设计流量计算_[2018年最新整理]合流制排水管网设计与计算.ppt
  2. Windows程序入口
  3. 解决远程桌面连接“这可能是由于CreddSSP加密数据库修正”的问题
  4. Python 必须掌握的知识
  5. 嵌入式系统概论-6-软件与内核
  6. 第七天--HCIA第五章--OSPF+ACL
  7. 固高控制卡Home回零的使用
  8. 如何将自己的电脑用作本地服务器进行测试服务器
  9. cocos creator 3D学习(六)光照+阴影
  10. 什么?居然还有免费数据可视化网站!