我正在使用node_redis,我想保存一个结构,如:
{
users :
"alex" : { "email" : "alex@gmail.com",
"password" : "alex123"},
"sandra" : { "email" : "sandra@gmail.com",
"password" : "sandra123"},
...
}
Run Code Online (Sandbox Code Playgroud)
目前,我为每个用户创建了一个JSON对象:
jsonObj = { "email" : "alex@gmail.com",
"password" : "alex123"}
Run Code Online (Sandbox Code Playgroud)
做一个
db.hmset("alex", JSON.stringify(jsonObj))
Run Code Online (Sandbox Code Playgroud)
是否有可能将此结构嵌入另一个结构(用户一个?)如何设置用户["alex"]具有此结构?
yoj*_*o87 23
据我所知,Redis中没有对嵌套结构的本机支持,但可以使用set + hash(类似于分层树)对它们进行建模.哈希可能最适合存储单个JSON对象的字段和值.我要做的是为每个用户存储一个前缀(这是一个Redis 约定),例如:
db.hmset("user:alex", JSON.stringify(jsonObj));
Run Code Online (Sandbox Code Playgroud)
然后使用集合将用户分组到一个名为密钥的集合中users
.然后,我可以通过smembers命令获取所有用户密钥,并使用hgetall单独访问每个用户密钥.
Llo*_*ore 16
您可以将子结构存储为对象,并将其id存储在主结构中,而非像指针一样.所以,举个例子,我会做以下几点
{
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
Run Code Online (Sandbox Code Playgroud)
希望这个可能的解决方
归档时间: |
|
查看次数: |
18678 次 |
最近记录: |