gpt4 book ai didi

redis - ZSCAN 保证在迭代过程中得分发生变化的元素

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

我在文档中找不到此信息:Does Redis guarantee that an element is returned with ZSCAN command under this condition:

The element was contained in the sorted set from the start to the end of a full iteration, BUT the score of such element has changed (even several times, for instance by another client) during iteration?

我找到的唯一相关声明如下:

Elements that were not constantly present in the collection during a full iteration, may be returned or not: it is undefined.

但我不知道在这种情况下分数变化是否与删除/添加操作相同。

最佳答案

如果元素在整个迭代过程中存在,它将通过 zscan 命令返回。在迭代过程中分数是否发生变化无关紧要。

通常,zset 被实现为一个哈希表(即 Redis 的 dict)和一个 skiplist。运行 zscan 命令时,它会遍历哈希表条目以执行扫描作业。分数(字典条目的值)的变化不会影响迭代过程。

如果 zset 足够小,Redis 会将其实现为 ziplist。在这种情况下,Redis 在单个 zscan 调用中返回所有元素。因此在迭代期间不能更改分数。

一句话,你有保障。

关于redis - ZSCAN 保证在迭代过程中得分发生变化的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39573739/

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