RedisTemplate序列化
来源:互联网 发布:手机去广告软件 编辑:程序博客网 时间:2024/06/01 22:27
Spring提供了默认的StringSerializer和JdkSerializer。
StringSerializer就是通过String.getBytes()来实现的,而且在Redis中,所有存储的值都是字符串类型的。所以这种方法保存后,通过Redis-cli控制台,是可以清楚的查看到我们保存了什么key,value是什么。
JdkSerializationRedisSerializer,这个序列化方法是Idk提供的,要求要被序列化的类继承自Serializeable接口,然后通过Jdk对象序列化的方法保存,这个序列化保存的对象,即使是个String类型的,在redis控制台,也是看不出来的,因为它保存了一些对象的类型什么的额外信息。
keySerializer:这个是对key的默认序列化器。默认值是StringSerializer。
valueSerializer:这个是对value的默认序列化器,默认值是取自DefaultSerializer的JdkSerializationRedisSerializer。
hashKeySerializer:对hash结构数据的hashkey序列化器,默认值是取自DefaultSerializer的JdkSerializationRedisSerializer。
hashValueSerializer:对hash结构数据的hashvalue序列化器,默认值是取自DefaultSerializer的JdkSerializationRedisSerializer。
修改默认的序列化:
@Configurationpublic class RedisConfig { /** * 注册RedisTemplate的bean * @param factory * @return */ @Bean public RedisTemplate redisTemplate(RedisConnectionFactory factory) { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(factory); /**Jackson序列化 json占用的内存最小 */ Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); /**Jdk序列化 JdkSerializationRedisSerializer是最高效的*/// JdkSerializationRedisSerializer jdkSerializationRedisSerializer = new JdkSerializationRedisSerializer(); /**String序列化*/ StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); /**将key value 进行stringRedisSerializer序列化*/ redisTemplate.setKeySerializer(stringRedisSerializer); redisTemplate.setValueSerializer(stringRedisSerializer); /**将HashKey HashValue 进行序列化*/ redisTemplate.setHashKeySerializer(stringRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }}
自定义RedisTemplate,RedisConnectionFactory 是springBoot是自动注册的,当然也可以自己注册RedisConnectionFactory 的bean.
redis配置信息
- RedisTemplate序列化
- RedisTemplate的使用说明(序列化以及事物)
- spring boot data RedisTemplate 序列化问题
- Spring RedisTemplate操作-序列化操作
- redis-springboot-redistemplate更改序列化方式
- Spring-boot通过redisTemplate使用redis(无须手动序列化)
- 深入理解Spring Redis的使用 (二)、RedisTemplate事务支持、序列化
- 深入理解Spring Redis的使用 (二)、RedisTemplate事务支持、序列化
- REDIS学习(4)spring boot redisTemplate 对REDIS的简单封装,以及对引用包的说明,以及对序列化的详细说明
- redisTemplate 操作
- RedisTemplate API
- RedisTemplate 分页
- redistemplate api
- RedisTemplate使用
- RedisTemplate.java
- spring redisTemplate 持久化到redis中数据更改为String类型
- redisTemplate超时设置
- API:RedisTemplate<K,V>
- 动态规划求编辑距离——算法解题报告
- CodeForces
- YTU.2431: C语言习题 医生值班
- layui回调函数
- Mybatis(一):Mybatis基础架构和入门案例
- RedisTemplate序列化
- Java类静态属性、静态块、非静态属性、非静态块、构造函数在初始化时的执行顺序
- Java设计模式百例
- day 37 rsync工具
- 26进制转换 boj1237
- 例解:过程性能模型的概念辨析
- MySQL存储引擎介绍
- 存储
- 关于LCA和RMQ问题