Java创建带有奇怪字符的Redis密钥和内容

时间:2018-10-20 14:52:34

标签: java spring-boot redis

我正在使用以下代码创建新的Redis密钥(和内容):

private static final String KEY_ESTADOS = "estados";
private HashOperations<String, String, Object> hashOperations;

public void add(final Estado estado) {
    hashOperations.put(KEY_ESTADOS, estado.getSigla(), estado);
}

而不是在Redis上创建键“ estados”,而是创建键名““ \ xac \ xed \ x00 \ x05t \ x00 \ aestados”

enter image description here

关键内容也带有奇怪的字符: enter image description here

有人知道如何解决这个问题吗?

Estados类实现了Serializable,但是我想将其内容保存在纯json中,所以我可以将HashOperations更改为而不是。您建议如何序列化为json并将其反序列化为对象?

谢谢

2 个答案:

答案 0 :(得分:0)

添加GenericJackson2JsonRedisSerializer以转换为json并设置valueSerializer。 This blog post may help you

答案 1 :(得分:0)

要解决有关redis键,哈希键和内容值的问题,我必须在RedisTemplate方法上添加以下几行:

template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());