Ranieri Mazili
Ranieri Mazili

Reputation: 833

Java creating Redis key and content with strange characters

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

Upvotes: 14

Views: 7129

Answers (3)

Zitronenenlolli
Zitronenenlolli

Reputation: 158

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

Upvotes: 0

Ranieri Mazili
Ranieri Mazili

Reputation: 833

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

Upvotes: 13

Riyaz
Riyaz

Reputation: 116

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

Upvotes: -3

Related Questions