node.js - 通过 node.js 应用程序在 redis 中保存嵌套哈希

标签 node.js redis

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

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

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

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

然后做一个

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

是否可以将此结构嵌入到另一个结构中(用户结构?) 我怎样才能用这种结构设置 users["alex"] ?

最佳答案

据我所知,Redis 中不支持嵌套结构,但可以使用 set+hash 对它们进行建模(类似于 hierarchical trees )。 Hashes可能最适合存储单个 JSON 对象的字段和值。我要做的是为每个用户存储一个前缀(即 Redis convention),例如:

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

然后使用 sets使用名为 users 的键将用户分组为一组。然后我可以通过 smembers 获取所有用户 key 使用 hgetall 命令并单独访问它们中的每一个.

关于node.js - 通过 node.js 应用程序在 redis 中保存嵌套哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5701491/

相关文章:

Node.js:从浏览器接收事件

node.js - mongoose 使用一个搜索参数查找包含组合字段的文档

javascript - 一种在 NodeJS 中获取和发送 Instagram 直接消息的方法

mysql - 通过 redisson 避免重复行

javascript - 什么是 `emit` javascript 函数?

用于对话(聊天)的 mysql vs redis?

java - Redis在java中排队,一次只执行一个任务

redis-cli 命令没有响应

python - 将 Redis 与 Sentinel 和 redis-py 一起使用时如何故障转移到新的主节点?

javascript - 在页面加载时获取图像