最近使用spring-data-redis RedisTemplate 操作redis时发现存储在redis中的key不是设置的string值,前面还多出了许多类似\xac\xed\x00\x05t\x00这种字符串,如下
[html] view plain copy
print?
- 127.0.0.1:6379> keys *
- 1) "\xac\xed\x00\x05t\x00\x04pass"
- 2) "\xac\xed\x00\x05t\x00\x04name"
- 3) "name"
127.0.0.1:6379> keys *1) "\xac\xed\x00\x05t\x00\x04pass"2) "\xac\xed\x00\x05t\x00\x04name"3) "name"
spring-data-redis的RedisTemplate<K, V>模板类在操作redis时默认使用JdkSerializationRedisSerializer来进行序列化,如下
private boolean enableDefaultSerializer = true;private RedisSerializer<?> defaultSerializer = new JdkSerializationRedisSerializer();private RedisSerializer keySerializer = null;private RedisSerializer valueSerializer = null;private RedisSerializer hashKeySerializer = null;private RedisSerializer hashValueSerializer = null;
解决方法
private RedisTemplate redisTemplate; @Autowired(required = false)public void setRedisTemplate(RedisTemplate redisTemplate) { RedisSerializer stringSerializer = new StringRedisSerializer(); redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setValueSerializer(stringSerializer); redisTemplate.setHashKeySerializer(stringSerializer); redisTemplate.setHashValueSerializer(stringSerializer); this.redisTemplate = redisTemplate;}
原文地址:https://www.cnblogs.com/jpfss/p/8427617.html
时间: 2024-08-30 09:26:07