Redis HKEYS 命令返回哈希表 key 中的所有域(field)或者叫键(hash key)。
尽管有 HGETALL 存在,但 HKEYS 也是非常有用的。如果散列包含的值非常大,那么用户可以先使用 HKEYS 取出散列包含的所有键,然后再使用 HGET 一个接一个地取出键的值,从而避免因为一次获取多个大体积的值而导致服务器阻塞。
命令格式
HKEYS key
可用版本:>=2.0.0
时间复杂度:O(N),N 为哈希表的大小。
命令返回值
HKEYS 命令返回 3 种情况:
- 当指定 key 存在时,返回一个包含哈希表中所有域的列表。
- 当指定 key 不存在时,返回空列表。
- 当指定 key 为非哈希类型时,返回命令与操作类型不匹配的提示信息。
示例
redis> HSET myhash field1 Koharu
(integer) 1
redis> HSET myhash field2 Suzuki
(integer) 1
redis> HKEYS myhash # 当指定 key 存在时
1) "field1"
2) "field2"
redis> HKEYS noexisthash # 当指定 key 不存在时
(empty list or set)
redis> SET knowledge dict
OK
redis> HKEYS knowledge # 当指定 key 为非哈希类型时
(error) WRONGTYPE Operation against a key holding the wrong kind of value
redis>