Redis スコアを降順でソートして取得する

Redis スコアを降順でソートして取得する

Redisで、スコアを降順でソートして取得する手順を記述してます。

環境

  • OS Ubuntu 21.10 (Impish Indri)
  • Redis 6.2.6

手順

スコアを降順でソートして取得するには、「zrevrange」を使用します。

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

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

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

範囲を指定して取得します。

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

127.0.0.1:6379> zrevrange zs1 0 2
1) "e"
2) "d"
3) "c"

127.0.0.1:6379> zrevrange zs1 1 3
1) "d"
2) "c"
3) "b"

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

「0」から「-1」を指定すると、全て取得されます。

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

スコアも取得

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

127.0.0.1:6379> zrevrange zs1 0 -1 withscores
 1) "e"
 2) "9"
 3) "d"
 4) "7"
 5) "c"
 6) "5"
 7) "b"
 8) "3"
 9) "a"
10) "1"