hscan命令redis中游标的含义是什么?

时间:2015-07-25 06:34:20

标签: redis

对于HSCAN,我看到了以下示例

hscan name 0 match key*

引用文档我看到数字是光标。我尝试更改数字,但从未看到过不同的结果。

该号码的重要性究竟是什么?

1 个答案:

答案 0 :(得分:2)

HSCAN遍历Hash数据结构中的字段。返回它的光标(以及SCAN系列的所有成员)是Redis用来标识"位置"的数字。它停在了。

不应该使用随机数。第一次拨打HSCAN时,您提供的光标应为0。 Redis的'回复由两部分组成 - 新光标和字段列表。要从HSCAN获取下一个字段列表,您应该提供前一个调用返回的光标(编号)。重复此操作直到Redis返回0作为游标 - 这意味着迭代已经完成。

在伪Redis Lua中,迭代一些Hash将如下:

local cursor=0
local fields={}

do
  cursor, fields = redis.call('HSCAN', cursor, 'somehashkey')
  -- do something with the fields
while cursor ~= 0