【问题标题】:Java creating Redis key and content with strange charactersJava用奇怪的字符创建Redis键和内容
【发布时间】:2018-10-21 02:43:44
【问题描述】:

我正在使用以下代码创建一个新的 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”

关键内容还带有奇怪的字符:

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

Estados 类实现了 Serializable 但我想将它的内容保存在纯 json 中,以便我可以将 HashOperations 更改为而不是 .您建议将什么序列化为 json 并将其反序列化回对象?

谢谢

【问题讨论】:

    标签: java spring-boot redis


    【解决方案1】:

    为了解决 redis 键、哈希键和内容值的问题,我不得不在 RedisTemplate 方法中添加以下几行:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 那个“博文”是一个危险链接。
      猜你喜欢
      • 1970-01-01
      • 2021-07-15
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2011-03-30
      相关资源
      最近更新 更多