最近使用spring-data-redis RedisTemplate 操作redis时,发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下:
spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,之前项目写的是:
private RedisTemplate redis;
@Autowired
public void setRedis(RedisTemplate redis) {
this.redis = redis;
redis.setKeySerializer(new JdkSerializationRedisSerializer());
}
使用的默认得JdkSerializationRedisSerializer来进行序列化
解决方法:改为下面这个:
private RedisTemplate redis;
@Autowired
public void setRedis(RedisTemplate redis) {
this.redis = redis;
RedisSerializer stringSerializer = new StringRedisSerializer();
redis.setKeySerializer(stringSerializer);
redis.setKeySerializer(stringSerializer);
redis.setValueSerializer(stringSerializer);
redis.setHashKeySerializer(stringSerializer);
redis.setHashValueSerializer(stringSerializer);
}
改完后效果: