redis扫描特定键,这是一种列表类型

时间:2018-04-16 12:50:28

标签: javascript redis

我正在尝试迭代redis中的列表,它具有巨大的长度和lrange导致JS崩溃。

  

致命错误:CALL_AND_RETRY_2分配失败 - 处理内存不足   致命错误:JS分配失败 - 处理内存不足

我搜索了扫描,但它只给出了键中的匹配结果,不能用它来迭代一个列表类型的键。

transitionTo

现在,我想使用scan迭代my:key,但无法找到任何语法。

1 个答案:

答案 0 :(得分:1)

不,您不能使用ReadonlyRootfs=false命令迭代列表。 SCAN用于迭代密钥空间。

相反,您应该使用SCAN来迭代列表。

LRANGE

但是,由于// Get the first 10 items in the list. LRANGE list 0 9 // Get the next 10 items LRANGE list 10 19 // ... until all items have been iterated. 的时间复杂度为LRANGE,因此这是 NOT 便宜的操作,尤其是当列表很大时。当您使用O(S+N)获取第100个项目时,Redis必须迭代第一个LRANGE项目。

所以我认为你应该重新设计你的系统,将列表分成几个小列表,或者使用其他数据结构。