Spring Boot整合Redis——自定义RedisSerializer
引言
spring boot简单引入redis依赖,并使用RedisTemplate进行对象存储时,需要使存储对象实现Serializable接口,这样才能够成功将对象进行序列化。
RedisTemplate默认使用的序列化机制是JdkSerializationRedisSerializer,但实际开发中,往往会以json的形式来保存数据。那么可以通过两种方式来实现这种要求,第一就是将保存的对象通过一些方法先转换成JsonString的形式,然后再通过redis保存;第二种方式,就是今天将要总结的自定义RedisSerializer的方式。
Jackson2JsonRedisSerializer
如果你使用IDE如Eclipse使用Ctrl + T 查看RedisSerializer的实现类,就可以看到很多可供选择的序列化器:
因此,根据项目实际使用场景,可以尝试选择不同的序列化器,这里也可以看到,StringRedisSerializer是专门用于序列化字符串的,以及刚才提到的jdk序列化器,还有阿里的FastJsonRedisSerializer等等。
这里我选择Jackson2JsonRedisSerializer举例演示。
@Configuration
public class RedisConfig {@Beanpublic RedisCacheManager cacheManager(RedisTemplate<String, Object> redisTemplate) {RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);cacheManager.setUsePrefix(true);return cacheManager;}@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory)throws UnknownHostException {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setKeySerializer(new StringRedisSerializer());template.setConnectionFactory(factory);// 自定义Jackson2JsonRedisSerializerJackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);// ObjectMapper om = new ObjectMapper();
// om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
// om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
// serializer.setObjectMapper(om);template.setValueSerializer(serializer);template.afterPropertiesSet();return template;}}
测试自定义序列化
注入redisTemplate:
@Autowired
private RedisTemplate<String, Object> redisTemplate;
存储对象关键代码:
ValueOperations<String, Object> opsForValue = redisTemplate.opsForValue();
String key = "emp-01";
opsForValue.set("emp-01", new Emp("张红玉", 23));
观察redis中的数据:
其中Object是一个没有实现Serializer接口的员工类,可以看到redis中依然成功保存了这个json对象。
综上,就是关于自定义序列化器的简单配置,欢迎文末留言。
Spring Boot整合Redis——自定义RedisSerializer相关推荐
- Spring boot - 整合 Redis缓存(上)
一.配置Pom文件 在使用spring boot 2.0整合redis时遇到了好多问题,网上很多例子都是1.x版本的.故2.0没有折腾好所以将2.0降到了1.5.降级后由于thymeleaf版本也会从 ...
- Spring boot整合Redis(入门教程)
目录 源码分析 jedis VS lettuce 整合测试 导入依赖 配置连接 测试 存入字符串 存入对象 五大数据类型操作 自定义RedisConfig 存入对象 Redis工具类(常用API) 以 ...
- Spring boot整合Redis实现发布订阅(超详细)
Redis发布订阅 基础知识 相关命令 订阅者/等待接收消息 发布者/发送消息 订阅者/成功接收消息 常用命令汇总 原理 Spring boot整合redis 导入依赖 Redis配置 消息封装类(M ...
- Spring Boot整合Redis以及Redis的原理
Redis的原理及知识 Redis简介 redis是一个key-value.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Spring Boot基础学习笔记08:Spring Boot整合Redis
文章目录 零.学习目标 1.熟悉Redis相关概念 2.掌握使用Spring Boot整合Redis 一.Redis概述 1.Redis简介 2.Redis优点 (1)存取速度快 (2)数据类型丰富 ...
- 十一、Spring Boot整合Redis(一)
Spring Boot整合Redis 1. SpringBoot+单例Redis 1)引入依赖 <dependency> <groupId>org.springf ...
- 大聪明教你学Java | Spring Boot 整合 Redis 实现访问量统计
前言 之前开发系统的时候客户提到了一个需求:需要统计某些页面的访问量,记得当时还纠结了一阵子,不知道怎么去实现这个功能,后来还是在大佬的带领下借助 Redis 实现了这个功能.今天又回想起了这件事,正 ...
- Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅)
Spring Boot 整合Redis 包含Java操作Redis哨兵 作者:哇塞大嘴好帥(哇塞大嘴好帅) 1. 配置环境 在SpringBoot2.0版本以后,原来使用的jedis被替换成为了let ...
- 微服务Spring Boot 整合 Redis 实现 好友关注
文章目录 ⛅引言 一.Redis 实现好友关注 -- 关注与取消关注 二.Redis 实现好友关注 -- 共同关注功能 ⛵小结 ⛅引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中, ...
最新文章
- 智源学者文再文获北京市杰出青年中关村奖
- 关于SQL Server 2017中使用json传参时解析遇到的多层解析问题
- POJ2406-Power Strings【KMP】
- redhat下的iptables和firewalld 笔记
- Codeforces Round #284 (Div. 2): D. Name That Tune(概率DP)
- [转载] python支持complex吗_Python 内置函数complex详解
- 基于OpenCV的计算机视觉入门(3)图像特效
- [渝粤教育] 西南科技大学 英语语法2 在线考试复习资料
- MYSQL服务器my.cnf配置文档详解
- 多媒体封装格式的比较
- 计算机公式与函数有何区别,Excel中公式和函数的区别/excle中的函数公式
- 光纤交换机配置zone
- tokenizers in Transformers:BPE、WordPiece,SentencePiece
- 微信公众平台模拟登录自动群发图文消息工具包
- smil java,如何在Android开发中使用SMIL文件
- UVa 紫书50题留念
- 【欺骗眼睛】可能你不会相信,图中的A色块和B色块是同一个颜色
- 用ifconfig命令,只有lo,没有eth0
- 通道归一化与图像归一化
- 城市轨道噪声控制措施
热门文章
- java reader_Java Reader ready()方法与示例
- uint32_t 是常数吗_UINT_MAX常数,带C ++示例
- Java DataInputStream readShort()方法(带示例)
- ReentrantLock 中的 4 个坑!
- 面试官:如何实现幂等性校验?
- InnoDB的内存结构和特性
- MFC:2个重载中没有一个可以转换所有参数类型
- C语言空指针NULL详解
- Python获取硬件信息(硬盘序列号,CPU序列号)
- Kafka集群部署搭建完美标准版