添加到redis里的key乱码

使用spring-data-redis往redis中添加数据,按照官方文档要求注入redistemplate模板,

 @Autowired
    private RedisTemplate<String, String> redisTemplate = null;

此时调用不会有问题,

 public void put(String key, String hashKey, String value) {
        redisTemplate.opsForHash().put(key, hashKey, value);
    }

可是当我改变类型时就会发现传到redis中的key乱码了。

 @Autowired
    private RedisTemplate<String, Integer> redisTemplate = null;

图片说明

图片说明

Byte[] bytes = Str.getBytes("ISO8859-1");//""里面的参数为需要转化的编码,一般是ISO8859-1
String str = new String(bytes,"utf-8");//转化为utf-8编码

http://bbs.csdn.net/topics/390388949?page=1

你做key的字符串最好都统一用UTF8等编码格式。所以插入前都进行一下转换

private RedisTemplate redisTemplate;
@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
    RedisSerializer stringSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringSerializer);
    redisTemplate.setHashKeySerializer(stringSerializer);
    this.redisTemplate = redisTemplate;
}