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

hscan name 0 match key*

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

该数字的确切含义是什么?

最佳答案

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

10-04 22:09
查看更多