Redis スコアのランクを範囲を指定して削除する
Redisで、スコアのランクを範囲を指定して削除する手順を記述してます。
環境
- OS Ubuntu 21.10 (Impish Indri)
- Redis 6.2.6
手順
スコアのランクを範囲を指定して削除するには、「zremrangebyrank」を使用します。
zremrangebyrank キー名 ランクの開始位置 ランクの終了位置
以下のスコアを設定して、削除してみます。
127.0.0.1:6379> zadd zs1 1 aaa 3 bbb 5 ccc 2 ddd 9 eee
(integer) 5
各メンバーのランクを確認します。
127.0.0.1:6379> zrevrank zs1 aaa
(integer) 4
127.0.0.1:6379> zrevrank zs1 bbb
(integer) 2
127.0.0.1:6379> zrevrank zs1 ccc
(integer) 1
127.0.0.1:6379> zrevrank zs1 ddd
(integer) 3
127.0.0.1:6379> zrevrank zs1 eee
(integer) 0
ランクが「1」から「3」の範囲を指定して削除します。
127.0.0.1:6379> zremrangebyrank zs1 1 3
(integer) 3
削除されていることが確認できます。「zrange」に「0」から「-1」を指定すると全件取得することができます。
127.0.0.1:6379> zrange zs1 0 -1 withscores
1) "aaa"
2) "1"
3) "eee"
4) "9"
該当する範囲に値がなければ「0」が返ります。
127.0.0.1:6379> zremrangebyrank zs1 10 11
(integer) 0
全件削除
「0」から「-1」を指定すると全件削除されます。
127.0.0.1:6379> zadd zs1 1 aaa 3 bbb 5 ccc 2 ddd 9 eee
(integer) 5
127.0.0.1:6379> zremrangebyrank zs1 0 -1
(integer) 5
127.0.0.1:6379> zrange zs1 0 -1 withscores
(empty array)
-
前の記事
javascript 改行を「br」タグに変換する 2022.06.24
-
次の記事
コマンドプロンプト 現在いるパスを表示する 2022.06.24
コメントを書く