Node_redisを使用していて、次のような構造を保存したいと思います。
{
users :
"alex" : { "email" : "[email protected]",
"password" : "alex123"},
"sandra" : { "email" : "[email protected]",
"password" : "sandra123"},
...
}
現在、ユーザーごとにJSONオブジェクトを作成しています。
jsonObj = { "email" : "[email protected]",
"password" : "alex123"}
そして、
db.hmset("alex", JSON.stringify(jsonObj))
この構造を別の構造(ユーザーの構造)に埋め込むことは可能ですか?この構造でusers ["alex"]を設定するにはどうすればよいですか?
私の知る限り、Redisにはネストされた構造のネイティブサポートはありませんが、たとえばset + hashを使用してモデル化できます( 階層ツリー と同様)。 ハッシュ は、単一のJSONオブジェクトのフィールドと値を格納するのにおそらく最適です。私がすることは、各ユーザーにプレフィックス(Redis convention )を付けて保存することです。例:
db.hmset("user:alex", JSON.stringify(jsonObj));
次に、 sets を使用して、ユーザーをusers
という名前のキーを持つ1つのセットにグループ化します。次に、 smembers コマンドですべてのユーザーキーを取得し、 hgetall で各ユーザーキーに個別にアクセスできます。
サブ構造をオブジェクトとして保存し、そのIDをポインターのようにメイン構造内に保存することができます。だから、あなたの例を考えると、私は次のことをします
{
users :
"alex" : { "email" : "[email protected]",
"password" : "alex123"},
"sandra" : { "email" : "[email protected]",
"password" : "sandra123"},
...
}
$x = incr idx:user
hmset user:$x email [email protected] password alex123
sadd list:user $x
$x = incr idx:user
hmset user:$x email [email protected] password sandra123
sadd list:user $x
この可能な解決策が役立つことを願っています