【Redis入門】LPUSH・LPUSHXコマンドでリストの先頭に要素を追加する方法
このチュートリアルでは、Redisデータストア内のキーに保存されたリスト値の先頭に、1つまたは複数の要素を挿入する方法について解説します。そのために使用するのが、Redisの LPUSH コマンドと LPUSHX コマンドです。
LPUSHコマンドとは
LPUSHコマンドは、キーに保存されたリスト値の先頭(左端)に、指定した1つ以上の要素を挿入するために使用します。要素は左側のものから順に、リストの先頭へ次々と追加されていきます。たとえば、LPUSH list a b c というコマンドを実行した場合、リストには1番目に c、2番目に b、3番目に a が格納される点に注意してください。
キーが存在しない場合は、挿入操作を実行する前に空のリストとして自動的に新規作成されます。一方、キーは存在するものの、そこに保存されている値がリスト型でない場合はエラーが返されます。Redis LPUSHコマンドの構文は以下のとおりです。
構文
redis host:post> LPUSH <keyname> <value 1> [ <value> ]
戻り値
- (integer) リスト内の要素数を表す数値が返されます。 - エラー: キーが存在し、かつその値がリスト型でない場合に返されます。
実行例

LPUSHXコマンドとは
LPUSHXコマンドは、キーに保存されたリスト値の先頭に、指定した要素を1つだけ挿入するために使用します。キーが存在しない場合は何も操作が行われず、0が返されます。また、キーは存在するものの値がリスト型でない場合はエラーが返されます。Redis LPUSHXコマンドの構文は以下のとおりです。
構文
redis host:post> LPUSHX <keyname> <value>
戻り値
- (integer) リスト内の要素数を表す数値が返されます。 - エラー: キーが存在し、かつその値がリスト型でない場合に返されます。
実行例

LPUSHとLPUSHXの違い
両コマンドの主な違いは、複数要素の挿入可否とキーの存在チェックです。LPUSHは複数の要素を一度に挿入でき、キーが存在しなければ新規作成します。一方、LPUSHXは挿入できる要素が1つだけで、キーが存在しない場合はリストを作成せずに0を返します。
参考資料
- LPUSHコマンド公式ドキュメント
- LPUSHXコマンド公式ドキュメント
以上、Redisデータストア内のキーに保存されたリスト値の先頭に、1つまたは複数の要素を挿入する方法について解説しました。この記事が役に立ったと思われた方は、ぜひコメント欄でご感想をお聞かせください。また、他の方にもシェアしていただけると嬉しいです。
<- リストコマンド一覧へ戻る
-
Redis ZINCRBYコマンドの使い方 – Redisでソート済みセットの要素スコアをインクリメントする方法
このチュートリアルでは、Redisデータストアに保存されたソート済みセット(Sorted Set)型の値について、特定の要素のスコアをインクリメントする方法を学びます。この操作には、redis-cliでZINCRBYコマンドを使用します。 ZINCRBYコマンドは、キーに保存されているソート済みセットの値の中から指定した要素を探し、そのスコアを指定した値(increment)だけ増加させるために使用します。もし指定した要素がソート済みセット内に存在しない場合は、その要素が新しく追加され、指定したincrement値がスコアとして設定されます。また、キー自体が存在しない場合には、指定した要素のみ
-
Redis SMOVEコマンドの使い方 – セット間で要素を移動する方法
このチュートリアルでは、Redisデータストアに保存されたあるセット(Set)から別のセットへ要素を移動する方法を解説します。これには redis-cli の SMOVE コマンドを使用します。 SMOVEコマンドは、source(送信元)キーに保存されたセットから指定した要素を削除し、その同じ要素をdestination(送信先)キーに保存されたセットへ挿入します。この操作はアトミック(不可分)であるため、どの時点においても、指定された要素は送信元または送信先のいずれか一方のセットにのみ存在することになります。 sourceキーのセットが存在しない場合や、指定した要素がそのセットに含まれてい