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序列化完成