Redis 範囲を指定してスコアを取得する

Redis 範囲を指定してスコアを取得する

Redisで、範囲を指定してスコアを取得する手順を記述してます。「zrange」で可能です。存在しない範囲を指定すると結果は「空」となります。

環境

  • OS CentOS Stream release 9
  • Redis 7.0.5

手順

範囲を指定してスコアを取得するには、「zrange」を使用します。

zrange キー名 範囲(0から) 範囲

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

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

取得します。

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

127.0.0.1:6379> zrange zs1 2 4
1) "c"
2) "d"
3) "e"

範囲を指定して取得されていることが確認できます。

範囲を超えると全て取得されます。

127.0.0.1:6379> zrange zs1 0 9
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"

「0」から「-1」を指定しても全て取得されます。

127.0.0.1:6379> zrange zs1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"

存在しない範囲

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

127.0.0.1:6379> zrange zs1 5 9
(empty array)

スコアも取得

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

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