使用RedisTemplate添加数据,使用anther redis查看数据库乱码。
@Autowired
private RedisTemplate redisTemplate;
@Test
void redisString() {
redisTemplate.opsForValue().set("zhangsan","张三");
String key = (String) redisTemplate.opsForValue().get("zhangsan");
System.out.println(key);
}
anther redis中乱码
解决办法
添加配置类,更改RedisTemplate中的序列化方式。
package com.example.redisdemo.config;
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;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
//1.创建RedisTemplate对象
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
//2.设置链接工厂
redisTemplate.setConnectionFactory(redisConnectionFactory);
//3.创建JSON序列化工具
GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
//4.设置key的序列化
redisTemplate.setKeySerializer(RedisSerializer.string());//StringRedisSerializer.UTF_8
redisTemplate.setHashKeySerializer(RedisSerializer.string());
//5.设置value的序列化
redisTemplate.setValueSerializer(jsonRedisSerializer);
redisTemplate.setHashValueSerializer(jsonRedisSerializer);
return redisTemplate;
}
}
结果