Redis リストのインデックス範囲外の値を削除する

Redis リストのインデックス範囲外の値を削除する

Redisで、リストのインデックス範囲外の値を削除する手順を記述してます。

環境

  • OS Ubuntu 21.10 (Impish Indri)
  • Redis 6.2.6

手順

リストのインデックス範囲外の値を削除するには、「ltrim」を使用します。

ltrim キー名 開始インデックス番号 終了インデックス番号

実際に、以下のリストを作成して範囲を指定して削除してみます。

127.0.0.1:6379> rpush list1 "aaa"
(integer) 1

127.0.0.1:6379> rpush list1 "bbb"
(integer) 2

127.0.0.1:6379> rpush list1 "ccc"
(integer) 3

127.0.0.1:6379> rpush list1 "ddd"
(integer) 4

127.0.0.1:6379> rpush list1 "eee"
(integer) 5

範囲の指定外の値を削除してみます。

127.0.0.1:6379> ltrim list1 1 3
OK

127.0.0.1:6379> lrange list1 0 -1
1) "bbb"
2) "ccc"
3) "ddd"

インデックス番号「1」から「3」以外の削除されていることが確認できます。