java - 如何使用 redis-cli 控制台列出数据?
问题描述
我可以通过我的 RESTful API 方法调用来添加和查看键值对。
但是在添加键值对之后,当我尝试使用 redis-cli 控制台列出/查看它们时,它没有列出任何值。
如您所见,在控制台中,它列出了 **keys *** 命令的一些垃圾值(通过浏览器添加新键/值后),但是当我尝试检索键时,它显示为空.
这可能是什么原因?如何在控制台中正确列出值?
解决方案
您在输出中看到的值KEYS *
是 java-serialized string 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
密钥的值。
推荐阅读
- time-complexity - 通过约简确定解的时间复杂度
- postgresql - 将 postgresql 表转换为 xml
- xml - VB Create .conf 不存在或读取 XML
- java - `CompletableFuture.completedFuture ... thenAccept`是否等同于顺序处理?
- python - 对具有字母数字值的字符串数组进行排序(Python3)
- c# - 返回一个函数
使用块的中间 - c# - 粒子系统在错误的时间播放
- google-play-console - 下载 10K+ 后,我的 google-play-console 中的应用程序在搜索中不可用
- firebase - 关于服务器端 Dart with Aqueduct 上的实时观察者和 Stripe 的两个问题
- python - 使用 numpad tkinter 输入特定的小部件