全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

springboot整合spring-data-redis遇到的坑

描述

使用springboot整合redis,使用默认的序列化配置,然后使用redis-client去查询时查询不到相应的key.

使用工具发现,key的前面多了\xAC\xED\x00\x05t\x00!这样一个串.

而且value也是不能直观可见的.

问题所在

使用springdataredis,默认情况下是使用org.springframework.data.redis.serializer.JdkSerializationRedisSerializer这个类来做序列化.

org.springframework.data.redis.core.RedisTemplate代码块.

 public void afterPropertiesSet() {
    super.afterPropertiesSet();
    boolean defaultUsed = false;
    if (defaultSerializer == null) {
      defaultSerializer = new JdkSerializationRedisSerializer(
          classLoader != null ? classLoader : this.getClass().getClassLoader());
    }
    if (enableDefaultSerializer) {
      if (keySerializer == null) {
        keySerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (valueSerializer == null) {
        valueSerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (hashKeySerializer == null) {
        hashKeySerializer = defaultSerializer;
        defaultUsed = true;
      }
      if (hashValueSerializer == null) {
        hashValueSerializer = defaultSerializer;
        defaultUsed = true;
      }
    }
    if (enableDefaultSerializer && defaultUsed) {
      Assert.notNull(defaultSerializer, "default serializer null and not all serializers initialized");
    }
    if (scriptExecutor == null) {
      this.scriptExecutor = new DefaultScriptExecutor<K>(this);
    }
    initialized = true;
  }

解决

手动设置key的序列化方式为StringRedisSerializer,强制使用.

由于spring不支持泛型注入,这样会导致所有的redisTemplate的key序列方式都为StringRedisSerializer. 同时,最好在序列化对象保存时候手动将其转为json串后存入redis.易于在可视化工具中直接查看对应value

@Bean
  public RedisTemplate<String, ?> redisTemplate(RedisConnectionFactory factory) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate();
    redisTemplate.setConnectionFactory(factory);
    RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();//Long类型不可以会出现异常信息;
    redisTemplate.setKeySerializer(stringRedisSerializer);
    return redisTemplate;
  }

以上所述是小编给大家介绍的springboot整合spring-data-redis遇到的坑,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# spring  # boot整合  # data  # redis  # springboot2整合redis使用lettuce连接池的方法(解决lettuce连接池无效问题  # 详解springboot配置多个redis连接  # Springboot2.X集成redis集群(Lettuce)连接的方法  # springboot整合redis进行数据操作(推荐)  # SpringBoot集成Redisson实现分布式锁的方法示例  # SpringBoot Redis配置Fastjson进行序列化和反序列化实现  # SpringBoot项目中使用redis缓存的方法步骤  # springboot与redis的简单整合实例  # SpringBoot通过RedisTemplate执行Lua脚本的方法步骤  # springboot中操作redis实例分享  # 序列化  # 小编  # 在此  # 不可以  # 将其  # 给大家  # 这样一个  # 不支持  # 来做  # 都为  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # 情况下  # defaultUsed  # core  # JdkSerializationRedisSerializer  # springframework 


相关文章: ,如何利用word制作宣传手册?  宁波免费建站如何选择可靠模板与平台?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  教程网站设计制作软件,怎么创建自己的一个网站?  制作网站的软件免费下载,免费制作app哪个平台好?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  建站主机选虚拟主机还是云服务器更好?  PHP 500报错的快速解决方法  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  长沙企业网站制作哪家好,长沙水业集团官方网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站之星导航菜单设置与功能模块配置全攻略  微信推文制作网站有哪些,怎么做微信推文,急?  C#如何序列化对象为XML XmlSerializer用法  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  如何在企业微信快速生成手机电脑官网?  建站之星如何快速生成多端适配网站?  如何通过虚拟机搭建网站?详细步骤解析  如何通过可视化优化提升建站效果?  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  已有域名如何快速搭建专属网站?  如何彻底卸载建站之星软件?  如何通过多用户协作模板快速搭建高效企业网站?  建站之星安装需要哪些步骤及注意事项?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  建站主机类型有哪些?如何正确选型  如何在西部数码注册域名并快速搭建网站?  建站之星安装路径如何正确选择及配置?  建站之星后台管理系统如何操作?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  高端云建站费用究竟需要多少预算?  如何批量查询域名的建站时间记录?  建站VPS选购需注意哪些关键参数?  盘锦网站制作公司,盘锦大洼有多少5G网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  制作销售网站教学视频,销售网站有哪些?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  文字头像制作网站推荐软件,醒图能自动配文字吗?  建站主机选哪种环境更利于SEO优化?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  建站之星后台密码遗忘或太弱?如何重置与强化?  如何快速生成专业多端适配建站电话?  如何零成本快速生成个人自助网站?  如何用免费手机建站系统零基础打造专业网站?  婚礼视频制作网站,学习*后期制作的网站有哪些?  北京的网站制作公司有哪些,哪个视频网站最好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。