springboot使用redis的序列化政策

springboot使用redis的方式有三种,前面我说过2种,分别是SpringCache和Spring Data Redis

1.Spring Cache
2. Spring Data Redis
3. Jedis

1.Spring Session 和 Spring Cache

Spring SessionSpring Cache 都可以使用Redis作为缓存服务器,并使用默认的序列化政策,即JdkSerializationRedisSerializer .

2. Spring Data Redis
spring Data Redis 提供了两种操作Redis的方法:

  • RedisTemplate
  • StringRedisTemplate

RedisTemplate采用的是默认的序列化政策,和上面的一样
StringRedisTemplate采用的是StringRedisSerializer

还可以自定义序列化政策,例如使用JSON的序列化方式

 //JSON的序列化方式:采用jackson作为默认的序列化方式
    @Bean("jsonRedisTemplate")
    public  RedisTemplate<Object,Object> jsonRedisTemplate(
            RedisConnectionFactory redisConnectionFactory)
        throws java.rmi.UnknownHostException{
        RedisTemplate<Object,Object> template = new RedisTemplate<Object,Object>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }

或者Redis Template 使用 StringRedisSerializer

//指定Key的序列化策略为StringRedisSerializer
    @Bean("strKeyRedisTemplate")
    public RedisTemplate<Object,Object> strKeyRedisTemplate(
            RedisConnectionFactory redisConnectionFactory)
        throws UnknownHostException{
        RedisTemplate<Object,Object> template = new RedisTemplate<Object,Object>();
        template.setConnectionFactory(redisConnectionFactory);
        //在这里,创建了一个名为“strKeyRedisTemplate"的实例,以下代码对key的序列化策略进行了重新设定
        RedisSerializer<String> stringSerializer = new StringRedisSerializer();
        template.setKeySerializer(stringSerializer);
        return template;
    }

3. 不同的序列化政策有什么不同

  • 默认的序列化 : Key 和 Value 是二进制的,保存在redis种不易阅读
  • StringRedisSerializer: Key 和 Value 是键值对类型的,更容易阅读
  • JSON的序列化方式 :输出为JSON格式
发布了33 篇原创文章 · 获赞 1 · 访问量 2048

猜你喜欢

转载自blog.csdn.net/m0_45025658/article/details/104260275