gpt4 book ai didi

redis - zrange 中的字典顺序选项?

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

当我使用 zincrby 为键添加分数时,它会增加分数并将元素按字典顺序排列。

我能否按元素更新或添加的顺序获取此列表?

例如>

如果我执行

zincrby A 100 g
zincrby A 100 a
zincrby A 100 z

然后

zrange A 0 -1

那么结果就是

a->g->z

我想要的结果是这样的,

g->a->z

由于所有人的分数都相同,redis 将元素按字典顺序排列。有什么办法可以预防吗?

最佳答案

我不认为这是可能的,但如果你想保持分数的插入顺序,你应该像这样操作:

<score><timestamp>

代替

<score>

你必须定义一个好的时间记录(毫秒应该没问题)。然后你可以使用

zincrby A 100 * (10^nbdigitsformillis)

例如:

分数 = 100,时间戳为 1381377600 秒

给出:1001381377600

你将分数增加 200:1001381377600 + 200 * 10 = 3001381377600

小心使用 zset,因为它存储 double 值的分数(64 位,但只有 52 位可用于 int 值)所以不要存储超过 15-17 位数字。

如果您做不到(需要高时间戳精度和高分数精度),您将不得不管理两个 zset(一个用于实际分数,一个用于时间戳)并使用这两个值管理您的排名手册。

关于redis - zrange 中的字典顺序选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000790/

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