12

I'm creating a new Redis key (and content) with the following code:

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);
}

Instead of create a key "estados" on Redis, it's creating a key name ""\xac\xed\x00\x05t\x00\aestados"

enter image description here

The key content is also with strange characters: enter image description here

Anybody knows how to fix this?

The Estados class implements Serializable but I would like save it's content in pure json so I could change HashOperations to instead of . What do you recommend to serialize to json and deserialize it back to object?

Thanks

Ranieri Mazili
  • 723
  • 6
  • 21

3 Answers3

11

To solve the problem about the redis key, hash key and content value I had to add the following lines on RedisTemplate method:

template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
Ranieri Mazili
  • 723
  • 6
  • 21
0

I had the same issue while using Socket and I fixed it due replacing ObjectOutputStream with OutputStream. Maybe that helps.

-1

Add GenericJackson2JsonRedisSerializer to convert to json and set valueSerializer. This blog post may help you

Riyaz
  • 120
  • 7