默认情况下,RedisTemplate使用的是JDK序列化,StringRedisTemplate使用的String的序列化,可读性好,将k和v都作为String进行处理; RedisTemplate把k和v经过了序列化存到了redis,k和v是序列化的内容,不能直接识别。
打开redis服务,使用Postman发送请求向redis中添加数据。
redis客户端查看数据,其中刚刚添加的key和value都是JDK序列化的内容,可读性较差。
因此为了提高可读性,我们可以自定义序列化形式。这里可设置key使用String序列化。
@PostMapping("/redis/customization")
public String addStr(String name,String value){
redisTemplate.setKeySerializer(new StringRedisSerializer());
// redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.opsForValue().set(name,value);
return "自定义RedisTemplate对象的key,value的序列化";
}
打开redis服务,使用Postman传入数据。
使用redis客户端查看数据,因此可看到String序列化的key以及未String序列化的value。
同理可将key和value都设置为String形式的序列化。
@PostMapping("/redis/customization")
public String addStr(String name,String value){
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.opsForValue().set(name,value);
return "自定义RedisTemplate对象的key,value的序列化";
}
redis客户端查看到的key和value均为String序列化的数据。