通过node.js应用程序将嵌套散列保存在redis中

我正在使用node_redis,我想保存一个结构,如:

{ users : "alex" : { "email" : "alex@gmail.com", "password" : "alex123"}, "sandra" : { "email" : "sandra@gmail.com", "password" : "sandra123"}, ... } 

目前,为每个用户创build一个JSON对象:

 jsonObj = { "email" : "alex@gmail.com", "password" : "alex123"} 

并做一个

 db.hmset("alex", JSON.stringify(jsonObj)) 

是否有可能embedded此结构在另一个结构(用户之一?)我怎么能设置用户[“alex”]这种结构?

据我所知,在Redis中不存在对嵌套结构的本地支持,但是可以使用set + hash(类似于层次树 )对它们进行build模。 散列可能最适合存储单个JSON对象的字段和值。 我要做的是将每个用户存储一个前缀(这是一个Redis 约定 ),例如:

 db.hmset("user:alex", JSON.stringify(jsonObj)); 

然后使用集合将用户分组为具有名为users的键的一个集合。 然后,我可以通过smembers命令获取所有用户密钥,并分别使用hgetall访问每个用户密钥。

您可以将子结构存储为对象,并将其存储在主结构中,而不像指针。 所以,举个例子,我会做以下的事情

 { users : "alex" : { "email" : "alex@gmail.com", "password" : "alex123"}, "sandra" : { "email" : "sandra@gmail.com", "password" : "sandra123"}, ... } $x = incr idx:user hmset user:$x email alex@gmail.com password alex123 sadd list:user $x $x = incr idx:user hmset user:$x email sandra@gmail.com password sandra123 sadd list:user $x 

希望这个可能的解决方