Redis リストから指定した値を削除する

Redis リストから指定した値を削除する

Redisで、リストから指定した値を削除する手順を記述してます。

環境

  • OS Ubuntu 21.10 (Impish Indri)
  • Redis 6.2.6

手順

リストから指定した値を削除するには、「lrem」を使用します。

※削除する個数はマイナスを指定すると後方から削除し、「0」を指定すると全て削除します。

lrem キー名 削除する個数 値

実際に、リストを作成して削除してみます。

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 "aaa"
(integer) 4

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

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

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

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

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

「aaa」を先頭から2個削除してみます。

127.0.0.1:6379> lrem list1 2 "aaa"
(integer) 2

削除されていることが確認できます。

127.0.0.1:6379> lrange list1 0 -1
1) "bbb"
2) "ccc"
3) "bbb"
4) "ccc"
5) "aaa"
6) "bbb"
7) "ccc"

マイナスを指定して、後方から削除してみます。

127.0.0.1:6379> lrem list1 -2 "ccc"
(integer) 2

127.0.0.1:6379> lrange list1 0 -1
1) "bbb"
2) "ccc"
3) "bbb"
4) "aaa"
5) "bbb"

指定した値を全て削除するには「0」を指定します。

127.0.0.1:6379> lrem list1 0 "bbb"
(integer) 3

127.0.0.1:6379> lrange list1 0 -1
1) "ccc"
2) "aaa"