redis序列化

本文详细探讨了Redis的默认序列化模式(JdkSerializationRedisSerializer),其特点、配置序列化模式后的变化,以及常见的序列化模式如Jdk、Jackson、GenericToString和OxmSerializer。还提到了如何在SpringBoot中使用StringRedisTemplate。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思考

redis序列化可能是平时开发中常见的,那么可能会忽略一些细节,
redis默认序列化模式是什么呢?

@Autowired
 private RedisTemplate<String,Object>  redisTemplate;

这段代码,序列化模式是啥?

那么我们配置了redisConfig后指定了序列化后 上述代码有啥变化?

有哪些序列化模式?

默认序列化

 if (this.defaultSerializer == null) {
            this.defaultSerializer = new JdkSerializationRedisSerializer(this.classLoader != null ? this.classLoader : this.getClass().getClassLoader());
        }

看源码,发现默认序列化模式是JdkSerializationRedisSerializer
那么它存储的特点是啥呢->二进制进行存储,可读性很差,但是兼容很强,可以存储任意类型数据。

我们配置了序列化模式后

@Bean(name="serializableRedisTemplate")
    public RedisTemplate<String,Object> serializableRedisTemplate(RedisConnectionFactory connectionFactory){
        RedisTemplate<String,Object> rt = new RedisTemplate<>();
        rt.setConnectionFactory(connectionFactory);
        rt.setKeySerializer(new StringRedisSerializer());
        rt.setValueSerializer(new JdkSerializationRedisSerializer());
        rt.afterPropertiesSet();
        return rt;
    }

当我们配置了序列化模式后,那么引入则需要改变

@Resource
	private RedisTemplate<String, Serializable> serializableRedisTemplate;

后续

我们常见的序列化模式有:
JdkSerializationRedisSerializer
GenericJackson2JsonRedisSerializer
GenericToStringSerializer
OxmSerializer

当然我们的springboot redis也有一些现成的组件使用

@Autowired
	private StringRedisTemplate stringRedisTemplate;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值