使用 RedisTemplate 保存数据时 key 多出来 \xac\xed\x00\x05t\x00\x011 之类的编码
时间: 2023-09-29 14:07:55 浏览: 171
这种情况通常是因为 RedisTemplate 默认使用了 JdkSerializationRedisSerializer 进行序列化,而在进行序列化时,会将字符串转换为字节数组,导致了这种看起来不可读的编码。你可以尝试使用其他的序列化器来解决这个问题。
一种常见的解决方案是使用 StringRedisSerializer,它会将字符串直接序列化为字节数组,而不会进行额外的转换。你可以通过配置 RedisTemplate 的 valueSerializer 来指定使用 StringRedisSerializer:
```java
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setKeySerializer(new StringRedisSerializer());
```
另外,如果你需要存储的是自定义的对象,你也可以考虑使用其他的序列化器,比如 Jackson2JsonRedisSerializer,它可以将对象序列化为 JSON 字符串,方便阅读和调试:
```java
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(YourObject.class));
```
通过选择合适的序列化器,你应该能够解决 RedisTemplate 保存数据时 key 多出来不可读编码的问题。
阅读全文