我能够通过restfulapi方法调用添加和查看键值对。但是在添加键-值对之后,当我尝试使用rediscli控制台列出/查看它们时,它没有列出任何值。您可以注意到,在控制台中,它列出了keys*命令的一些垃圾值(在通过浏览器添加新的键/值之后),但是当我尝试检索键时,它显示为空。为什么会这样?如何在控制台中正确列出值?同时附加restful api方法定义:
e1xvtsh31#
在输出中看到的值 KEYS * 是java序列化字符串 user .前两个字节 \xac\xed (十六进制:0xaced)是 STREAM_MAGIC 不变。接下来的两个字节 \x00\x05 (十六进制:0x0005)是 STREAM_VERSION ,序列化协议的版本。下一个字节, t 为0x74= TC_STRING 意思是一个字符串对象。最后 \x00\x04 是字符串的长度。该协议在6.4.2终端符号和常量中的对象序列化流协议中进行了描述您可能想检查一下代码,看看为什么字符串在到达redis之前被java序列化。可能是因为 h: 截图上显示的。同时,你可以 GET "\xac\xed\x00\x05t\x00\x04user" 检查你的价值 user 钥匙。
KEYS *
user
\xac\xed
STREAM_MAGIC
\x00\x05
STREAM_VERSION
t
TC_STRING
\x00\x04
h:
GET "\xac\xed\x00\x05t\x00\x04user"
1条答案
按热度按时间e1xvtsh31#
在输出中看到的值
KEYS *
是java序列化字符串user
.前两个字节
\xac\xed
(十六进制:0xaced)是STREAM_MAGIC
不变。接下来的两个字节
\x00\x05
(十六进制:0x0005)是STREAM_VERSION
,序列化协议的版本。下一个字节,
t
为0x74=TC_STRING
意思是一个字符串对象。最后
\x00\x04
是字符串的长度。该协议在6.4.2终端符号和常量中的对象序列化流协议中进行了描述
您可能想检查一下代码,看看为什么字符串在到达redis之前被java序列化。可能是因为
h:
截图上显示的。同时,你可以
GET "\xac\xed\x00\x05t\x00\x04user"
检查你的价值user
钥匙。