我是 Node.js 的新手,我正在尝试使用 Express 和 Redis 创建博客。
我的问题是我有点迷失在 NoSQL 中,我真的不知道应该如何设计我的 Redis 数据。
我想做的:
SET global:postsNb 0
SET posts:1:text blablabla
SADD posts:1:tags a
SADD posts:1:tags b
SADD posts:1:tags c
这看起来很自然,但我不知道如何搜索标签中的所有帖子。
你能帮帮我吗?
提前致谢。
最佳答案
It seems quite natural but I don't know how I can search all posts where a in tags.
你需要这样的东西:
SADD tags:[tagname] [postId]
例如,在创建帖子时(id=1,tags=a,b,c, content=...)运行以下命令:
SADD tags:a 1
SADD tags:b 1
SADD tags:c 1
然后检索所有具有标签 a
的帖子:
SMEMBERS tags:a
现在使用检索到的 ID 只需获取您需要显示的每个帖子。
PS: HASH 比字符串存储博文更方便,所以代替:
SET posts:1:text
您可能想改用 HMSET
HMSET posts:1 text blablabla createdAt 1385547056549
它将允许您向帖子添加更多属性/元数据,同时仍然可以使用 HGETALL 或 HMGET 轻松检索它。
关于search - 使用 Redis 从集合中反向搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229712/