Redis ハッシュ操作

RedisBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Redis Hash の操作について、特にハッシュ内のデータを効率的に管理する方法を探求します。まず、HMSET コマンドを使用して、ハッシュ内の複数のフィールドを同時に設定します。次に、HMGET を使用して特定のフィールドを取得する方法、HINCRBY でフィールドの値をインクリメントする方法、および HEXISTS を使用してハッシュ内のフィールドの存在を確認する方法を学びます。この実験(Lab)を終える頃には、Redis で一般的なハッシュ操作を実行する方法をしっかりと理解できるようになるでしょう。

HMSET で複数のフィールドを設定する

このステップでは、Redis の HMSET コマンドについて説明します。このコマンドを使用すると、ハッシュの複数のフィールドを一度に設定できます。これは、HSET コマンドを使用して各フィールドを個別に設定するよりも効率的です。

まず、redis-cli コマンドを使用して Redis サーバーに接続しましょう。~/project ディレクトリでターミナルを開き、次のように入力します。

redis-cli

Redis プロンプト 127.0.0.1:6379> が表示されるはずです。

次に、HMSET コマンドを使用してみましょう。構文は次のとおりです。

HMSET key field value [field value ...]

ここで:

  • key はハッシュの名前です。
  • field はハッシュ内のフィールドの名前です。
  • value はフィールドに割り当てる値です。

user:1001 という名前のハッシュを作成し、その複数のフィールド (nameagecity) を設定してみましょう。

HMSET user:1001 name "John Doe" age 30 city "New York"

OK という出力が表示されるはずです。これは、コマンドが成功したことを示します。

フィールドが正しく設定されていることを確認するには、HGETALL コマンドを使用できます。ただし、この実験(Lab)では、コマンド自体の検証に焦点を当てます。

HMSET を使用して既存のフィールドを更新することもできます。たとえば、age フィールドを 31 に変更してみましょう。

HMSET user:1001 age 31

再び OK が表示されるはずです。

exit と入力して redis-cli を終了することを忘れないでください。これは、コマンドが検証のためにログに記録されるために重要です。

exit

HMGET で複数のフィールドを取得する

このステップでは、HMGET コマンドを使用して Redis ハッシュから複数のフィールドを取得する方法を学びます。これは、特定のフィールドのみが必要で、ハッシュ全体を取得したくない場合に役立ちます。

まず、redis-cli コマンドを使用して Redis サーバーに接続します。

redis-cli

前のステップで、nameage、および city のフィールドを持つ user:1001 という名前のハッシュを作成したことを思い出してください。 HMGET コマンドを使用して、name フィールドと age フィールドを取得してみましょう。

HMGET の構文は次のとおりです。

HMGET key field [field ...]

ここで:

  • key はハッシュの名前です。
  • field は取得するフィールドの名前です。複数のフィールドを指定できます。

user:1001 ハッシュから name フィールドと age フィールドを取得するには、次のコマンドを実行します。

HMGET user:1001 name age

次のような出力が表示されるはずです。

1) "John Doe"
2) "31"

出力は値の配列であり、要求したフィールドの順序に対応しています。

ハッシュ内にフィールドが存在しない場合、HMGET はそのフィールドに対して nil を返します。

exit と入力して redis-cli を終了することを忘れないでください。

exit

HINCRBY でフィールドの値を増やす

このステップでは、HINCRBY コマンドを使用して Redis ハッシュ内のフィールドの値を増やす方法を学びます。このコマンドは、カウンターやその他の数値データに特に役立ちます。

まず、redis-cli コマンドを使用して Redis サーバーに接続します。

redis-cli

前のステップで作成した user:1001 ハッシュを引き続き使用します。このユーザーのログイン数を追跡したいとしましょう。ハッシュに logins フィールドを追加し、ユーザーがログインするたびにそれを増やすことができます。

まず、logins フィールドを追加し、それを 0 に初期化しましょう。これには HMSET を使用できます。

HMSET user:1001 logins 0

OK が表示されるはずです。次に、HINCRBY を使用して logins フィールドを増やします。

HINCRBY の構文は次のとおりです。

HINCRBY key field increment

ここで:

  • key はハッシュの名前です。
  • field はインクリメントするフィールドの名前です。
  • increment はフィールドをインクリメントする量です。

logins フィールドを 1 ずつ増やすには、次のコマンドを実行します。

HINCRBY user:1001 logins 1

(integer) 1 という出力が表示されるはずです。これは、logins フィールドの新しい値です。

logins フィールドをもう一度増やしてみましょう。

HINCRBY user:1001 logins 1

出力は (integer) 2 になります。

1 以外の値で増やすこともできます。

exit と入力して redis-cli を終了することを忘れないでください。

exit

HEXISTS でフィールドの存在を確認する

このステップでは、HEXISTS コマンドを使用して Redis ハッシュにフィールドが存在するかどうかを確認する方法を学びます。これは、フィールドを取得または変更する前に、フィールドの存在を確認するのに役立ちます。

まず、redis-cli コマンドを使用して Redis サーバーに接続します。

redis-cli

前のステップで作成した user:1001 ハッシュを引き続き使用します。このハッシュには、nameagecity、および logins などのフィールドがあることがわかっています。 HEXISTS を使用して、name フィールドが存在するかどうかを確認しましょう。

HEXISTS の構文は次のとおりです。

HEXISTS key field

ここで:

  • key はハッシュの名前です。
  • field は確認するフィールドの名前です。

user:1001 ハッシュに name フィールドが存在するかどうかを確認するには、次のコマンドを実行します。

HEXISTS user:1001 name

(integer) 1 という出力が表示されるはずです。これは、フィールドが存在することを示します。

次に、country など、存在しないフィールドを確認してみましょう。

HEXISTS user:1001 country

(integer) 0 という出力が表示されるはずです。これは、フィールドが存在しないことを示します。

exit と入力して redis-cli を終了することを忘れないでください。

exit

まとめ

この実験(Lab)では、Redis ハッシュ操作について学びました。まず、HMSET コマンドを使用して、ハッシュ内の複数のフィールドを効率的に設定する方法を学びました。次に、HMGET を使用して特定のフィールドを取得する方法、HINCRBY でフィールドの値を増やす方法、HEXISTS を使用してハッシュ内のフィールドの存在を確認する方法を学習しました。これらのコマンドは、Redis ハッシュ内でデータを効果的に管理するための基礎となります。