Redis リストの値を別のリストに移動させる

Redis リストの値を別のリストに移動させる

Redisで、リストの値を別のリストに移動させる手順を記述してます。「lpoprpush」で対象のキー名と移動させるキー名を指定刷ることで可能です。移動させる値がない場合は「nil」が返ります。

環境

  • OS CentOS Stream release 9
  • Redis 7.0.5

手順

リストの値を別のリストに移動させるには、「lpoprpush」を使用します。

lpoprpush キー名 移動させるキー名

実際に、以下のリストを作成してから移動させてみます。

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> lrange list1 0 -1
1) "aaa"
2) "bbb"
3) "ccc"
4) "ddd"
5) "eee"

127.0.0.1:6379> lrange list2 0 -1
(empty array)

127.0.0.1:6379> rpoplpush list1 list2
"eee"

移動されていることが確認できます。

127.0.0.1:6379> lrange list2 0 -1
1) "eee"

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

キーに値が存在しなくなると「nil」が返ります。

127.0.0.1:6379> rpoplpush list1 list2
"ccc"
127.0.0.1:6379> rpoplpush list1 list2
"bbb"
127.0.0.1:6379> rpoplpush list1 list2
"aaa"
127.0.0.1:6379> rpoplpush list1 list2
(nil)