计算已排序集中的项目

Redis 提供了三个命令来计算有序集合中的项目:ZCARD,ZCOUNT,ZLEXCOUNT。

ZCARD 命令是对集合基数的基本测试。 (它类似于集合的 SCARD 命令。)。ZCARD 返回集合成员的计数。执行以下代码以将项添加到集:

zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer

运行 ZCard:

zcard favs

返回值 4。

ZCOUNT 和 ZLEXCOUNT 命令允许你根据值范围计算排序集中项目的子集。ZCOUNT 允许你计算特定分数范围内的项目,ZLEXCOUNT 允许你计算特定词汇范围内的项目数。

使用上面的集合:

zcount favs 2 5

将返回 3,因为有三个项目(比萨饼,巧克力,啤酒)的得分在 2 到 5 之间。

ZLEXCOUNT 旨在使用集合,其中每个项目具有相同的分数,强制和订购元素名称。如果我们创建了一个像:

zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer

我们可以使用 ZLEXCOUNT 来获取特定词法范围内的元素数量(这可以通过使用 memcpy 函数进行逐字节比较来完成)。

zlexcount favs [apple (chocolate

会返回 2,因为两个元素(苹果,啤酒)属于苹果(含)和巧克力(独家)。我们可以选择包括两端:

zlexcount favs [apple [chocolate

得到结果 3。