使用RedisTemplate序列化解决可视化工具中乱码

test1中出现乱码问题。

我们首先配置,让程序执行时使用Jackson2JsonRedisSerializer序列化机制,它是把pojo实例序列化成JSON格式存储

//Spring配置注入
@Configuration
public class RedisConfig {

    /**
     *
     * 序列化配置
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();

        redisTemplate.setConnectionFactory(redisConnectionFactory);
        // 使⽤Jackson2JsonRedisSerialize 替换默认序列化
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper objectMapper = new ObjectMapper();

        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        // 设置key和value的序列化规则
        redisTemplate.setKeySerializer(new StringRedisSerializer());

        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        // 设置hashKey和hashValue的序列化规则
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());

        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
        // 设置⽀持事物
        //redisTemplate.setEnableTransactionSupport(true);
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }

执行程序:

@Test
	public void test1(){

        //使用RedisTemplate
        ValueOperations<String, Object> vo = redisTemplate.opsForValue();
        vo.set("test1","ceshi2");
        System.out.println(vo.get("test1"));  //ceshi2
    }

 使用Jacksong2JsonRedisSerializer序列化完成

猜你喜欢

转载自blog.csdn.net/LiuJia20010827/article/details/127503745