全网整合营销服务商

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

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


相关文章: c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何快速搭建高效WAP手机网站?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站之星伪静态规则如何设置?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  太原网站制作公司有哪些,网约车营运证查询官网?  C#如何使用XPathNavigator高效查询XML  如何用PHP快速搭建高效网站?分步指南  已有域名能否直接搭建网站?  音响网站制作视频教程,隆霸音响官方网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  济南网站制作的价格,历城一职专官方网站?  建站之星如何保障用户数据免受黑客入侵?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何高效搭建专业期货交易平台网站?  网站微信制作软件,如何制作微信链接?  如何快速生成高效建站系统源代码?  制作门户网站的参考文献在哪,小说网站怎么建立?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  建站之星如何实现五合一智能建站与营销推广?  建站之星备案流程有哪些注意事项?  5种Android数据存储方式汇总  如何用花生壳三步快速搭建专属网站?  如何通过IIS搭建网站并配置访问权限?  建站之星后台密码如何安全设置与找回?  广平建站公司哪家专业可靠?如何选择?  如何在建站之星绑定自定义域名?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何在阿里云虚拟服务器快速搭建网站?  小建面朝正北,A点实际方位是否存在偏差?  如何在企业微信快速生成手机电脑官网?  山东网站制作公司有哪些,山东大源集团官网?  如何制作算命网站,怎么注册算命网站?  建站之星导航配置指南:自助建站与SEO优化全解析  C++如何使用std::optional?(处理可选值)  如何解决ASP生成WAP建站中文乱码问题?  招贴海报怎么做,什么是海报招贴?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  孙琪峥织梦建站教程如何优化数据库安全?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  网站设计制作公司地址,网站建设比较好的公司都有哪些?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  宿州网站制作公司兴策,安徽省低保查询网站?  定制建站流程解析:需求评估与SEO优化功能开发指南  如何在景安云服务器上绑定域名并配置虚拟主机?  建站之星代理平台如何选择最佳方案?  定制建站方案优化指南:企业官网开发与建站费用解析  如何通过虚拟主机快速完成网站搭建? 

您的项目需求

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