計算已排序集中的專案

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。