gpt4 book ai didi

redis - 获取具有给定前缀的所有排序集的大小

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

我在 Redis 中得到了几个具有共同前缀 (itemmovements:) 的排序集合。

我知道我们可以使用 ZCOUNT像这样获取单个(排序集)键的项目数:

127.0.0.1:6379> zcount itemmovements:8 0 1000000000
(integer) 23

(我能够做到这一点,因为我知道项目分数的范围。)

如何为所有前缀为 itemmovements: 的键循环运行它?

How to atomically delete keys matching a pattern using Redis 得到提示我试过这个:

127.0.0.1:6379> EVAL "return redis.call('zcount', unpack(redis.call('keys', ARGV[1])), 0, 1000000000)" 0 itemmovements:*
(integer) 150

但如您所见,它只返回一个数字(恰好是 itemmovements:0 的大小,keys 返回的第一个值)。

最佳答案

我意识到我不明白 EVAL 中的 lua 代码在做什么。下面的代码工作正常:

eval "local a = {}; for _,k in ipairs(redis.call('keys', 'itemmovements:*')) do table.insert(a, k); table.insert(a, redis.call('zcount', k, 0, 1000000000)); end; return a" 0

关于redis - 获取具有给定前缀的所有排序集的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32321517/

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