gpt4 book ai didi

javascript - redis 扫描一个特定的键,它是列表类型

转载 作者:可可西里 更新时间:2023-11-01 11:15:28 24 4
gpt4 key购买 nike

我正在尝试遍历 redis 中的一个列表,它的长度和 lrange 导致 JS 崩溃。

FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory FATAL ERROR: JS Allocation failed - process out of memory

我搜索了 scan,但它只为您提供键中的匹配结果,不能将其用于遍历作为列表类型的键。

redis-cli: scan 0 MATCH my:key
redis-cli: 1) 18
redis-cli: 2) my:key
redis-cli: type my:key
redis-cli: list

现在,我想使用扫描遍历 my:key,但找不到它的任何语法。

最佳答案

不,您不能使用SCAN 命令来迭代列表。 SCAN用于迭代 key 空间。

相反,您应该使用 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 的时间复杂度是 O(S+N),这不是一个便宜的操作,尤其是当名单很大。当您使用 LRANGE 获取第 100 个项目时,Redis 必须迭代前 99 个项目。

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

关于javascript - redis 扫描一个特定的键,它是列表类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com