如何使用redis-cli控制台列出数据?

问题描述

我能够通过我宁静的API方法调用添加和查看键值对。

response of restful api method

但是添加键值对后,当我尝试使用redis-cli控制台列出/查看它们时,它没有列出任何值。

redis-cli results

您会注意到,在控制台中,它列出了** keys ***命令的一些垃圾值(通过浏览器添加新的密钥/值之后),但是当我尝试检索密钥时,它显示了变成空的。

这可能是什么原因? 如何在控制台中正确列出值?

还附加了宁静的api方法定义:

restful api methods

解决方法

KEYS *的输出中看到的值是Java序列化的字符串user

前两个字节\xac\xed(十六进制:0xACED)是STREAM_MAGIC常量。

接下来的两个字节\x00\x05(十六进制:0x0005)是序列化协议的STREAM_VERSION版本。

下一个字节t为0x74 = TC_STRING表示字符串对象。

最后\x00\x04是字符串的长度。

此协议在6.4.2 Terminal Symbols and Constants的对象序列化流协议中进行了描述

您可能想查看代码,以了解为什么在到达Redis之前将字符串进行Java序列化。可能是因为屏幕截图中显示了h:

同时,您可以执行GET "\xac\xed\x00\x05t\x00\x04user"检查user键的值。

IDE behaviour