Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redis LSETコマンドの使い方 – リストの指定インデックスに要素を設定する方法

このチュートリアルでは、Redisデータストアに保存されたリスト型の値に対して、新しい要素を設定する方法を解説します。そのために使用するのが、RedisのLSETコマンドです。

LSETコマンドとは

LSETコマンドは、キーに保存されているリスト型の値に対して、指定したインデックスの位置にある要素を新しい値で上書きします。

インデックスはゼロベースで扱われます。つまり、「0」が先頭の要素、「1」が2番目の要素というように対応しています。また、負の数を使うことも可能で、「-1」は末尾の要素、「-2」は末尾から2番目の要素を意味します。

なお、範囲外のインデックスを指定してLSETコマンドを実行すると、エラーが返されます。既存のリストに新しい要素を追加したい場合はLPUSHやRPUSHを使用し、LSETはあくまで既存要素の上書き用である点に注意しましょう。

構文

redis host:post> LSET <keyname> <index> <element>

実行結果

- OK:<element>がリスト内の指定位置に正常に設定された場合
- (error) ERR index out of range:<index>の値が範囲外の場合
- エラー:キーは存在するが、その値がリスト型ではない場合

実行例

Redis LSETコマンドの使い方 – リストの指定インデックスに要素を設定する方法

例えば、以下のように使用します。

# リストを作成
redis host:post> RPUSH mylist "apple" "banana" "cherry"
(integer) 3

# インデックス1(2番目)の要素を上書き
redis host:post> LSET mylist 1 "orange"
OK

# 結果を確認
redis host:post> LRANGE mylist 0 -1
1) "apple"
2) "orange"
3) "cherry"

参考資料

  1. LSETコマンド公式ドキュメント

まとめ

今回は、Redisデータストアに保存されたリスト型の値の特定のインデックスに要素を設定するLSETコマンドについて解説しました。ゼロベースと負のインデックスの挙動、範囲外指定時のエラーなど、基本的なポイントを押さえておけば実務でも安心して使えます。

この記事が役に立ったら、ぜひコメント欄で感想を共有したり、他の方にもシェアしてください。

<- リスト系コマンド一覧へ戻る

  1. 【Redis入門】ZRANK・ZREVRANKコマンドでソートセットの要素のランクを取得する方法

    このチュートリアルでは、Redisデータストアに格納されたソートセット(Sorted Set)の値から、特定の要素のランク(順位)を取得する方法を、ZRANKコマンドとZREVRANKコマンドを使って解説します。 ZRANKコマンドとは ZRANKコマンドは、指定したキーに格納されているソートセットの中から、対象メンバーのランクを返すコマンドです。ソートセット内の要素はスコアの昇順で並んでおり、スコアが同じ要素同士は辞書順(レキシコグラフィカル順)の昇順で比較されます。 ランクはゼロベースである点に注意してください。つまり、最もスコアが低いメンバーのランクは「0」となります。 要素がソートセ

  2. Redis ZINCRBYコマンドの使い方 – Redisでソート済みセットの要素スコアをインクリメントする方法

    このチュートリアルでは、Redisデータストアに保存されたソート済みセット(Sorted Set)型の値について、特定の要素のスコアをインクリメントする方法を学びます。この操作には、redis-cliでZINCRBYコマンドを使用します。 ZINCRBYコマンドは、キーに保存されているソート済みセットの値の中から指定した要素を探し、そのスコアを指定した値(increment)だけ増加させるために使用します。もし指定した要素がソート済みセット内に存在しない場合は、その要素が新しく追加され、指定したincrement値がスコアとして設定されます。また、キー自体が存在しない場合には、指定した要素のみ