Redis 範囲を指定してスコアの件数をカウントする

Redis 範囲を指定してスコアの件数をカウントする

Redisで、範囲を指定してスコアの件数をカウントする手順を記述してます。

環境

  • OS Ubuntu 21.10 (Impish Indri)
  • Redis 6.2.6

手順

範囲を指定してスコアの件数をカウントするには、「zcount」を使用します。

zcount キー名 範囲 範囲

実際に、スコアを設定してから範囲を指定して取得してみます。

127.0.0.1:6379> zadd zs1 1 a 3 b 5 c 7 d 9 e
(integer) 0

スコアの値が、2以上で3以下(2 <= スコア <= 3)の件数を取得します。

127.0.0.1:6379> zcount zs1 2 3
(integer) 1

取得されていることが確認できます。

「(」を使用すると「<」として使用できます。「2 < スコア < 5」のデータを取得します。

127.0.0.1:6379> zcount zs1 (2 (5
(integer) 1

「-inf +inf」を範囲に指定すると全件取得されます。

127.0.0.1:6379> zcount zs1 -inf +inf
(integer) 5

存在しない範囲

存在しない範囲を指定すると、「空」が返ります。

127.0.0.1:6379> zcount zs1 10 15
(integer) 0