通过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
希望这个可能的解决方