【Redis入門】HSET・HSETNX・HMSETコマンドでハッシュのフィールドに値を設定する方法
このチュートリアルでは、Redisのキーに格納されたハッシュ値の各フィールドに対して値を設定する方法を解説します。使用するのは HSET、HSETNX、HMSET の3つのコマンドです。それぞれの構文、戻り値、実行例を順番に見ていきましょう。
HSETコマンドとは
HSET コマンドは、指定したキーに格納されているハッシュ内の指定フィールドに値を設定します。
- フィールドがすでに存在する場合は、既存の値が上書きされます。
- キーが存在しない場合は、設定操作の前にハッシュを保持する新しいキーが自動的に作成されます。
- キーは存在するものの、格納されている値がハッシュ型でない場合はエラーが返されます。
構文
redis host:post> HSET <keyname> <field> <value>
戻り値
- 1 (integer):フィールドが新規で、値が設定された場合 - 0 (integer):フィールドが既に存在し、値が上書きされた場合 - エラー:キーは存在するが、値がハッシュ型ではない場合
実行例

HSETNXコマンドとは
HSETNX コマンドは、ハッシュ内にそのフィールドが存在しない場合のみ値を設定します。フィールドがすでに存在する場合、この操作は何も行わず、既存の値は変更されません。キーが存在しない場合は、HSETと同様に新しいキーが作成されます。
「既存の値を絶対に上書きしたくない」というケースで役立つコマンドです。
構文
redis host:post> HSETNX <keyname> <field> <value>
戻り値
- 1 (integer):フィールドが新規で、値が設定された場合 - 0 (integer):フィールドが既に存在し、操作が実行されなかった場合 - エラー:キーは存在するが、値がハッシュ型ではない場合
実行例

HMSETコマンドとは
HMSET コマンドは、複数のフィールド/値ペアを一度にハッシュへ設定できます。指定したいずれかのフィールドがすでに存在する場合は、その値が上書きされます。キーが存在しない場合は、新しいキーが作成されます。
補足: HMSETはRedis 4.0.0以降で非推奨(deprecated)となっており、現在はHSETコマンド自体が複数のフィールド/値ペアを受け付けられるようになっています。新規開発ではHSETの利用が推奨されます。
構文
redis host:post> HMSET <keyname> <field> <value> [ <field> <value> ]
戻り値
- OK (simple string):正常に設定された場合 - エラー:キーは存在するが、値がハッシュ型ではない場合
実行例

参考ドキュメント
- HSETコマンド公式ドキュメント
- HSETNXコマンド公式ドキュメント
- HMSETコマンド公式ドキュメント
以上、Redisデータストアに格納されたハッシュのフィールドに値を設定する方法についての解説でした。この記事が役に立ったら、ぜひコメントで感想を共有したり、周りの方にもシェアしてください。
<- ハッシュ関連コマンド一覧へ戻る
-
Redis HGETALLコマンドの使い方 – ハッシュに含まれるすべてのフィールドと値のペアを一括取得する方法
このチュートリアルでは、Redisのキーに保存されたハッシュ値に含まれるすべてのフィールドと値のペアを取得する方法について解説します。この操作には、RedisのHGETALLコマンドを使用します。 HGETALLコマンドとは HGETALLコマンドは、指定したキーに保存されているハッシュ値に含まれるすべてのフィールドと、それぞれに関連付けられた値を返すコマンドです。 動作のポイントは以下の通りです。 キーが存在しない場合は、空のリストが返されます(エラーにはなりません)。 キーは存在するが、その値がハッシュ型ではない場合は、エラーが返されます。 構文 redis host:port>
-
Redisでキーに文字列値を設定する方法を徹底解説 – SET / SETNX / SETEX / PSETEX コマンドの使い方
このチュートリアルでは、Redisのデータストア上で指定したキーに文字列値を設定する方法について、SET、SETNX、SETEX、PSETEX の4つのコマンドを使って詳しく解説します。それぞれのコマンドの動作の違いや使い分けのポイントもあわせて紹介するので、Redisの文字列操作をマスターしたい方はぜひ参考にしてください。 SETコマンドとは SETコマンドは、指定したキーに文字列値を設定するための最も基本的なコマンドです。キーがすでに存在する場合は、その型に関係なく値が上書きされます。また、キーに設定されていた以前の有効期限(TTL)も削除される点に注意が必要です。 SETコマンドのオプシ