Redis-cli 中的 HGETALL 显示类似 x00 xff 的结果。到底发生了啥?

Posted

技术标签:

【中文标题】Redis-cli 中的 HGETALL 显示类似 x00 xff 的结果。到底发生了啥?【英文标题】:HGETALL in Redis-cli showing the results like x00 xff. What is really happening?Redis-cli 中的 HGETALL 显示类似 x00 xff 的结果。到底发生了什么? 【发布时间】:2022-01-17 20:34:53 【问题描述】:

我成功地将值插入到我的 redis 缓存中,并且在尝试获取存储的值时,我得到的值类似于

127.0.0.1:6379> HGETALL UPGRADE_ME
1) "\xfc\r-447340129694"
2) "\x00\x00\x00\x00\x00\x00\x00\x00S\x00\x00\x00\x00\x00\x00\x00\x00\x010com.customer.upgrade.Key\x00\xfd\x00\x00\x00\x00\x00\xd0\xbe@\xff\x00\x10\x00\xff\xfc\x04time\xff\xff\xfc\x06reason\x00"

这些值是否存储为binary?另外我怎样才能让它存储为json.?

我的java代码看起来像

    RMapCache<String, Key> keys= redissonClient.getMapCache(UPGRADE_ME);
    keys.put(key1, obj, cacheProperties.getProps(),
                TimeUnit.SECONDS);

【问题讨论】:

您确定有将值放入 Redis 的代码吗? 相关:***.com/questions/32389158/… @MarkSetchell 是的。我正在使用 reddison java 客户端 【参考方案1】:

有API可以传递编解码器,我们可以传递org.redisson.codec.JsonJacksonCodec()将对象存储为json

 RMapCache<String, Key> keys= redissonClient.getMapCache(UPGRADE_ME,new org.redisson.codec.JsonJacksonCodec());
 keys.put(key1, obj, cacheProperties.getProps(),
            TimeUnit.SECONDS);

【讨论】:

以上是关于Redis-cli 中的 HGETALL 显示类似 x00 xff 的结果。到底发生了啥?的主要内容,如果未能解决你的问题,请参考以下文章

REDIS HGETALL按序输出结果

redis-cli中文乱码

python3 redis-py如何自动解析hgetall结果?

由Redis的hGetAll函数所引发的一次服务宕机事件

如何从redis-cli repl中删除Redis匹配模式中的所有键?

性能测试二十五:redis-cli 命令总结