redis hscan命令中的光标是什么意思?

Ase*_*sal 5 redis

对于HSCAN我看到了以下示例

hscan name 0 match key*
Run Code Online (Sandbox Code Playgroud)

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

这个数字到底有什么意义呢?

Ita*_*ber 3

HSCAN迭代哈希数据结构中的字段。游标返回它(以及该SCAN系列的所有成员),是 Redis 用于标识其停止的“位置”的数字。

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

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

local cursor=0
local fields={}

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