Redis 最小値と最大値を指定してスコアのメンバーを取得する

Redis 最小値と最大値を指定してスコアのメンバーを取得する

Redisで、最小値と最大値を指定してスコアのメンバーを取得する手順を記述してます。「zrangebyscore」にキー名を指定して最小と最大の値を指定することで簡単に取得できます。

環境

  • OS CentOS Stream release 9
  • Redis 7.0.4

手順

最小値と最大値を指定してスコアのメンバーを取得するには、「zrangebyscore」を使用します。

zrangebyscore キー名 最小値 最大値

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

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

最小値と最大値を指定して指定して取得します。

127.0.0.1:6379> zrangebyscore zs1 0 3
1) "a"
2) "b"

127.0.0.1:6379> zrangebyscore zs1 0 5
1) "a"
2) "b"
3) "c"

127.0.0.1:6379> zrangebyscore zs1 2 4
1) "b"

スコアの値が最小値と最大値の範囲で取得されていることが確認できます。

「inf」を指定すると、全て取得されます。

127.0.0.1:6379> zrangebyscore zs1 -inf +inf
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"

スコアも取得

「withscores」を使用すると、スコアも取得することが可能です。

127.0.0.1:6379> zrangebyscore zs1 0 5 withscores
1) "a"
2) "1"
3) "b"
4) "3"
5) "c"
6) "5"

件数を指定

「limit」を使用すると取得する件数を指定することができます。

127.0.0.1:6379> zrangebyscore zs1 -inf +inf limit 0 3
1) "a"
2) "b"
3) "c"