对于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