redisTemplate自定义序列化配置,更改其默认序列化器

2021-10-23  本文已影响0人  拄杖忙学轻声码

问题场景:
如果我们使用redis默认的序列化器,会发现redis可视化工具中展示的是乱码,非常不友好

解决:
配置redisTemplate的序列化器,使用自定义的序列化器,不使用redis默认的,代码如下:

package com.hkl.modules.configure;
 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
 
/**
 * <p>ClassName: RedisConfigure</p >
 * <p>Description: redisTemplate自定义序列化配置,更改其默认序列化器</p >
 * <p>Date: 2021/10/23</p >
 */
@Configuration
public class RedisConfigure {
 
    @Bean(name = "redisTemplate")
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
 
        RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
        // 参照StringRedisTemplate内部实现指定序列化器
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setKeySerializer(keySerializer());
        redisTemplate.setHashKeySerializer(keySerializer());
        redisTemplate.setValueSerializer(valueSerializer());
        redisTemplate.setHashValueSerializer(valueSerializer());
 
        return redisTemplate;
    }
 
    //使用Jackson序列化器,key使用字符串
    private RedisSerializer<String> keySerializer() {
        return new StringRedisSerializer();
    }
 
    //使用Jackson序列化器,value使用Object
    private RedisSerializer<Object> valueSerializer() {
        return new GenericJackson2JsonRedisSerializer();
    }
 
}

以上配置好之后,redis可视化端就会正常显示json格式的数据


image.png
上一篇下一篇

猜你喜欢

热点阅读