LINSERT

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

値で特定位置にデータを入れる

使い方は linsert key BEFORE|AFTER pivot value です。
ピボット(pivot)は基準になるデータ(値)です。これを基準に前後に value を入れます。

Example

コマンド>lpush mylist value1 value3
結果>1
コマンド>lrange mylist 0 -1
結果>0) value2
1) value1
コマンド>linsert mylist after value3 value2    value3 の後ろに value2 を入れる
結果>3   入力後の総データ件数を返す
コマンド>linsert mylist before value3 value4    value3 の前に value4 を入れる
結果>4
コマンド>lrange mylist 0 -1
結果> 1) value4
2) value3
3) value2
4) value1

アニメーションを見る


基準データが複数ある場合

最初のデータを基準に処理されます。

Example

コマンド>lpush mylist value3 value3
結果>2
コマンド>linsert mylist before value3 value4
結果>3
コマンド>linsert mylist after value3 value2
結果>4
コマンド>lrange mylist 0 -1
結果> 1) value4
2) value3
3) value2
4) value3

アニメーションを見る


基準データが存在しない場合

入力されません。この場合 -1 を返します。

Example

コマンド>linsert mylist after value5 value6
結果>-1

インデックスで特定位置にデータを入れる

インデックスを指定して値を入れられます。 インデックスは 0 から始まります。最後のインデックスは -1 を指定するか LLEN の結果値を指定できます。 リバースインデックスとしても使えます。
インデックスが分かる場合、値(value)を使うより性能が良くなります。 また値が複数ある場合、インデックスを使うと効果的に処理できます。

Example

コマンド>linsert mylist after 1 value7 by index
結果>5
コマンド>linsert mylist before -1 value8 by index
結果>6
この機能は Enterprise サーバーで使用できます。

構文

LINSERT key BEFORE|AFTER   [pivot value] | [index by index]

  • このコマンドは version 2.2.0 から使用できます。
  • 時間計算量は O(N) です。
  • コマンド実行後、リストにある総データ件数を返します。
関連コマンド LINDEX, LSET, LTRIM
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

<< LSET LINSERT LREM >>

Email 返事がかかってなれば、メールでお知らせします。