写点什么

ReidsTemplate 序列化器

作者:李爽
  • 2024-08-22
    上海
  • 本文字数:841 字

    阅读完需:约 3 分钟

当我们在 pom.xml 文件中加入

       <dependency>  <!-- 优化Redis相关逻辑-->            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-data-redis</artifactId>        </dependency>
复制代码

即可直接注入

StringRedisTemplate

RedisTemplate 使用

一般情况下 StringRedisTemplate 会默认使用 StringRedisSerializer 作为序列化器

如图所示:


RedisTemplate 使用 JdkSerializationRedisSerializer 作为序列化器


JdkSerializationRedisSerializer 会将数据以自己数组的形式存储在 Redis 中,当我们打开 Redis 查看数时,就会出现以下现象,可读性不强,不利于问题的排查;


但是由于 StringRedisTemplate 只适合 K,V 都是 String 的场景进行处理,所能处理的场景有限,因此,一般会对 RedisTemplate 的序列化器进行设置。


@Configurationpublic class RedisTemplateConfiguration {    @Bean    public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();        redisTemplate.setConnectionFactory(redisConnectionFactory);        // 使用Jackson2JsonRedisSerialize 替换默认序列化        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);        // 设置key和value的序列化规则        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);        redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }
}
复制代码


参考:

聊聊 RedisTemplate 的各种序列化器

https://shusheng007.top/2023/08/11/redis-serializer/


用户头像

李爽

关注

还未添加个人签名 2018-08-11 加入

还未添加个人简介

评论

发布
暂无评论
ReidsTemplate序列化器_李爽_InfoQ写作社区