RedisTemplate的key、value默认序列化器问题

问题描述

使用RedisTemplate存储的数据,在 redis-cli 客户端查看时,key 和 value 都会携带类似\xac\xad\这样的字符串。

问题分析

是由于默认使用了 jdk 的序列化方式。以下是是 支持的序列化方式
RedisTemplate的key、value默认序列化器问题_第1张图片

解决方法

key 使用 String 序列化,value 使用 json 序列化。

@Configuration
public class RedisConfig {
    @Autowired
    RedisTemplate redisTemplate;

    /**
     * 解决序列化 key、value 显示问题
     *
     * @param redisTemplate
     */
    @Autowired(required = false)
    public void setRedisTemplate(RedisTemplate redisTemplate) {
        RedisSerializer stringSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringSerializer);
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
        redisTemplate.setHashKeySerializer(stringSerializer);
        redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
        this.redisTemplate = redisTemplate;
    }
}

你可能感兴趣的:(代码块)