Redis OBJECT 命令允许查看与 键 相关联的 Redis 的内部对象。通常用在调试或了解键是否使用了特殊的数据类型编码来节省空间。
当使用 Redis 作为缓存时,应用程序还可以使用 OBJECT 命令报告的信息来实现应用程序级别的键优化策略。
192.168.98.70:6379> OBJECT subcommand [arguments [arguments]]
OBJECT 命令有多个子命令:
命令 | 描述 |
---|---|
OBJECT REFCOUNT |
返回特定 key 对应值的引用计数。这个命令主要用于调试。 |
OBJECT ENCODING |
返回特定 key 对应值的内部编码方式。 |
OBJECT IDLETIME |
返回给定 key 自储存以来的空闲时间(idle, 没有被读取也没有被写入),以秒为单位。 每当该 key 被读/写时,idletime 会重新从 0 开始计数。 |
如果你的操作使用得 Redis 不再能够使用节省空间的编码方式(比如字串变得很长,集合变得很大。),Redis 会自动将其转化为通用编码方式。
REFCOUNT 和 IDLETIME 返回数字。ENCODING 返回相应的编码类型。
O(1)
>= 2.2.3
使用 ENCODING 命令可以查看 KEY 的内部编码形式
# 查看 KEY 内部编码
192.168.98.70:6379> SET haicoder.net 1
OK
192.168.98.70:6379> OBJECT ENCODING haicoder.net
"int"
192.168.98.70:6379> APPEND haicoder.net Hello
(integer) 6
192.168.98.70:6379> OBJECT ENCODING haicoder.net
"raw"
192.168.98.70:6379> DEL haicoder.net
(integer) 1
我们首先,设置 haicoder.net 的值为 1,接着,使用 ENCODING 命令,查看 KEY 的内部编码方式为 int。
最后,我们使用 APPEND 命令,在原来的值后面增加了 Hello 字符串。此时,再次使用 ENCODING 命令,查看 KEY 的内部编码方式为 raw。
使用 REFCOUNT 命令可以查看 KEY 的引用计数
# 查看 KEY 的引用计数
192.168.98.70:6379> SET haicoder.net Redis
OK
192.168.98.70:6379> OBJECT REFCOUNT haicoder.net
(integer) 1
我们使用 REFCOUNT 命令,查看 KEY 的引用计数,返回引用计数的个数。
使用 IDLETIME 命令可以查看 KEY 的空闲时间
# 查看 KEY 的空闲时间
192.168.98.70:6379> SET haicoder.net Redis
OK
# 等待一段时间执行
192.168.98.70:6379> OBJECT IDLETIME haicoder.net
(integer) 12
# 再等待一段时间执行
192.168.98.70:6379> OBJECT IDLETIME haicoder.net
(integer) 18
# 访问
192.168.98.70:6379> GET haicoder.net
"Redis"
# 再次立刻访问空闲时间
192.168.98.70:6379> OBJECT IDLETIME haicoder.net
(integer) 3
我们首先,使用 IDLETIME 命令可以查看 KEY 的空闲时间,即 KEY 多久没有被访问等待一段时间后,这里的空闲时间显示的是 12,即 12s 没有被访问了。
再过一段时间后,再次查看空闲时间,变成了 18。然后使用 GET 命令,访问了 KEY。再次立刻访问空闲时间,发现变成了 3。
Redis OBJECT 命令允许查看与键相关联的 Redis 的内部对象。Redis OBJECT 命令语法:
192.168.98.70:6379> OBJECT subcommand [arguments [arguments]]