こちらの記事ではredis Cache ServerのHASHデータ・タイプを紹介します。
さ、FAを楽しもう。
Reference Link
Hash
Redisでは、HASHは文字列フィールドを文字列値にマッピングするデータ構造で、基本的にキーと値のペアを使用してオブジェクトを表現できます。このため、ハッシュはユーザープロファイルや構成設定など、複数の属性を持つオブジェクトを格納するのに特に便利です。
- Field-Value Pairs:Redisの各ハッシュはフィールドと値で構成され、各フィールドは値に関連付けられた一意の文字列であり、複雑なデータ構造を簡単に表現することができます。
- Efficient Memory Usage:Redisは、フィールド数が少ない場合、ハッシュに最適化された表現を使用し、単純なオブジェクトに複数の文字列を使用するのに比べてメモリ効率が高くなります。
- Atomic Operations:ハッシュに対する操作はアトミックであり、複数のスレッドが同じハッシュを競合条件なしに安全に操作できます。
- オブジェクトの保存に便利:ハッシュは、名前、年齢、電子メールなどの属性を持つユーザーなど、複数のプロパティを持つデータを格納するのに最適です。
{ machine:’Welding-1″, state:1, operatpr:”yamada” } |
HSET
HSETコマンドは指定されたフィールドを、keyに格納されているハッシュのそれぞれの値に設定します。
- ハッシュ内に存在する指定されたフィールドの値を上書きます。
- keyが存在しない場合は、ハッシュを保持する新しいkeyが作成される。
下図の例ではHSETコマンドを使用しHashデータを作成します。
- Machine:1
- Location:A-1
- PLC:Beackhoff
- State:Run
Done!
BrowserからMachine:1というHASHキーが作成されたことが確認できました!
Machine:1のHASHデータには先程追加したKeyとValueを確認できました!
またKey:Valueを追加したい場合は、そのままHSETコマンドを使用すればよいんです。
Done!
HGET
HGETコマンドを使用すれば、key に格納されているハッシュのフィールドに関連付けられた値を返すことができます。
下図の例ではHGETコマンドでMachine:1のFieldを取得します。
また、下図のように特定のKeyが格納される値を取得することもできます。
HGETALL
HGETALLコマンドはkeyに格納されているハッシュのすべてのフィールドと値を返すことができます。注意するのは返される値では、すべてのフィールド名の後にその値が続くので、 応答の長さはハッシュのサイズの2倍になります。
下図の例ではHGETALLコマンドでMachine:2のすべてのField値を取得します。
Done!
HEXISTS
HEXISTSコマンドを使用すれば、field が key に格納されているハッシュの既存のフィールドであるかどうかを確認できます。
下図の例ではHEXISTSコマンドでMachine:1の中にOperatorというキーがあるかをチェックします。
Done!Serverから整数の1が返答されたので、Machine:1にOperatorというキーがあることを確認できます。
今度はMachine:1に”NOEXIST”キーが格納していませんが、HEXISTSコマンドで結果を確認してみます。
Serverから整数0の返答がきましたので、Machine:1には”NOEXIT”というキーがないことを確認できました。
HKEYS
HKEYSコマンドではkey に格納されているハッシュ内のすべてのフィールド名を返す役割があります。下図の例ではHKEYSコマンドでMachine:2のキーを確認してみます。
Done!ServerからMachine:2のキー値を全部返答してきました。
HDEL
HDELコマンドでは、keyに格納されているハッシュから指定されたフィールドを削除できます。下図の例ではHDELコマンドでMachine:2にStateキーを削除します。
BrowserからMachine:2を確認すると、Stateキーがなくなりました。
DEL
DELコマンドではDatabaseにあるデータを削除できます。下図の例DELコマンドを使ってMachine:2を削除します。
Done!Machine:2が削除されました。
HVALS
HVALSはkey に格納されているハッシュ内のすべての値を返すコマンドです。下図の例ではMachine:1からすべてのキーが格納された値を取得します。
Done!