全网整合营销服务商

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

免费咨询热线: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 


相关文章: 网页制作模板网站推荐,网页设计海报之类的素材哪里好?  建站之星客服服务时间及联系方式如何?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  怀化网站制作公司,怀化新生儿上户网上办理流程?  浅谈Javascript中的Label语句  威客平台建站流程解析:高效搭建教程与设计优化方案  建站之星代理如何优化在线客服效率?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  建站主机类型有哪些?如何正确选型  平台云上自主建站:模板化设计与智能工具打造高效网站  如何通过老薛主机一键快速建站?  建站之星免费版是否永久可用?  建站org新手必看:2024最新搭建流程与模板选择技巧  高端网站建设与定制开发一站式解决方案 中企动力  如何配置支付宝与微信支付功能?  如何规划企业建站流程的关键步骤?  如何选择适合PHP云建站的开源框架?  小建面朝正北,A点实际方位是否存在偏差?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何挑选最适合建站的高性能VPS主机?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何高效利用亚马逊云主机搭建企业网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  广德云建站网站建设方案与建站流程优化指南  建站之星如何实现网站加密操作?  高防服务器如何保障网站安全无虞?  如何通过FTP服务器快速搭建网站?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站主机核心功能解析:服务器选择与网站搭建流程指南  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站制作的步骤包括,正确网址格式怎么写?  建站主机系统SEO优化与智能配置核心关键词操作指南  建站之星后台密码遗忘如何找回?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  济南专业网站制作公司,济南信息工程学校怎么样?  建站之星如何助力网站排名飙升?揭秘高效技巧  视频网站制作教程,怎么样制作优酷网的小视频?  活动邀请函制作网站有哪些,活动邀请函文案?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  如何选择最佳自助建站系统?快速指南解析优劣  如何批量查询域名的建站时间记录?  测试制作网站有哪些,测试性取向的权威测试或者网站?  山东网站制作公司有哪些,山东大源集团官网?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  如何在阿里云虚拟主机上快速搭建个人网站?  建站之星云端配置指南:模板选择与SEO优化一键生成  教学论文网站制作软件有哪些,写论文用什么软件 ? 

您的项目需求

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