spring boot redis 序列化配置

473 阅读1分钟
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory redisConnectionFactory) {    
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();    
    redisTemplate.setConnectionFactory(redisConnectionFactory);    
    Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer(Object.class);    
    ObjectMapper objectMapper = new ObjectMapper();    
    objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);    
    objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);   
    serializer.setObjectMapper(objectMapper);    redisTemplate.setKeySerializer(new StringRedisSerializer());    
    redisTemplate.setValueSerializer(serializer);    
    redisTemplate.setHashKeySerializer(new StringRedisSerializer());    
    redisTemplate.setHashValueSerializer(serializer);    
    redisTemplate.afterPropertiesSet();    
    return redisTemplate;
}

redis操作:

//操作字符串
ValueOperations<String, Object> valueTemplate = redisTemplate.opsForValue();

//操作list
ListOperations<String, Object> listOperations = redisTemplate.opsForList();

//操作hash
HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash();

//操作set
SetOperations<String, Object> setOperations = redisTemplate.opsForSet();