このタイプの構造をredisで作成したい:(基本的にはjsonデータ)
{
"id": "0001",
"name":"widget ABC",
"model": "model123",
"service":"standard",
"admin_password": 82616416,
"r1":
{
"extid":"50000",
"password":"test123",
},
"r2":
{
"ext":"30000",
"password":"test123",
},
}
これまでに試したこと:
「サブ」ハッシュなしでハッシュを作成しようとしましたが、これは基本的なことを確認するためです。これが、redis-cliから始めたものです。
HMSET widget:1 id 0001 name 'widget ABC' model 'model123' service standard admin_password 82616416
HMSET widget:2 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234
それはうまくいくようです。ウィジェットコレクションにウィジェットデータの2つの「レコード」があることがわかります。
しかし、r1データでレコードを作成しようとすると失敗します。
これは私が試したものです:
HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1{extid 50000}
これにより、ハッシュ値「50000}のハッシュキー「r1 {extid」が作成されます。
任意の提案をいただければ幸いです。私の問題は私の専門用語だと思います。私のグーグル検索で使用する単語を知るには、redis構文について十分に理解していません。
たぶん、次のようにデータを「フラット化」する必要があります。
HMSET widget:3 id 0002 name 'widget ABC' model 'model123' service standard admin_password 12341234 r1_extid 50000 r1_password test123 r2_extid 30000 r2_password test123
ありがとう。
Redisはネストされたデータ構造をサポートしていません。具体的にはハッシュ内のハッシュをサポートしていません:)基本的に、2つのオプションから選択できます。内部ハッシュをシリアル化してハッシュフィールドに保存するか、別のハッシュキーを使用します。外部ハッシュのフィールドにそれへの参照を保持するだけです。