• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > springboot整合spring-data-redis遇到的坑

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

作者:super-wen 字体:[增加 减小] 来源:互联网 时间:2017-05-28

super-wen 通过本文主要向大家介绍了springboot整合redis,springboot整合shiro,springboot整合docker,springboot整合dubbo,springboot整合jpa等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

描述

使用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;
  }
</div>

解决

手动设置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;
  }
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SpringBoot整合ElasticSearch实践
  • 详解springboot整合mongodb
  • springboot整合 beatlsql的实例代码
  • springboot整合spring-data-redis遇到的坑
  • SpringBoot远程访问redis服务器问题剖析
  • 详解springboot配置多个redis连接
  • SpringBoot整合ElasticSearch实践
  • 详解springboot整合mongodb
  • springboot整合 beatlsql的实例代码
  • springboot整合spring-data-redis遇到的坑

相关文章

  • 2017-05-28java数组、泛型、集合在多态中的使用及对比
  • 2017-05-28解决Tomcat修改get提交请求乱码问题
  • 2017-05-28完美解决gson将Integer默认转换成Double的问题
  • 2017-05-28Maven+SSM框架实现简单的增删改查
  • 2017-05-28javaweb中mysql数据库连接步骤方法及其实例
  • 2017-05-28SWT JFace 拖曳效果
  • 2017-05-28学习Spring-Session+Redis实现session共享的方法
  • 2017-05-28Spring Data JPA调用存储过程实例代码
  • 2017-05-28spring MVC + bootstrap实现文件上传示例(带进度条)
  • 2017-05-28Java String 和 new String()的比较与区别

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • java中Collection对象的使用
    • java并发之ArrayBlockingQueue详细介绍
    • Java连接MongoDB进行增删改查的操作
    • 详解利用Spring的AbstractRoutingDataSource解决多数据源的问题
    • java 中sleep() 和 wait() 的对比
    • 利用Java Apache POI 生成Word文档示例代码
    • Java正则表达式判断字符串中是否包含中文示例
    • 跟我学Java Swing之游戏设计(2)
    • Spring Boot如何使用Spring Security进行安全控制
    • 常用数据库的驱动程序及JDBC URL分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有