2

我设计了我的第一个 Redis 数据库,希望得到一些反馈、建议或提示。

概述:

我的 redis 数据库存储文章,以后可以按喜欢、创建日期、更新日期、作者等排序...

文章还包含“项目”我还需要确定哪些文章中包含至少 1 个项目。

创建

创建新文章时,我将其 ID 写入各种键

ZADD 'articles:created' 时间戳 ArticleID

ZADD 'articles:updated' 时间戳 ArticleID

ZADD '文章:喜欢' 0 ArticleID

SADD 'user:USERID:articles' ArticleID

每当更新文章时

ZADD 'articles:updated' 时间戳 ArticleID

每当将项目添加到文章时

ZADD 'articles:itemCount' ItemCount ArticleID

如果一个项目被删除,并且没有项目保留,我只需删除它的成员

ZREM 'articles:itemCount' 文章ID

因此,当涉及到排序时,我会执行以下操作:

  1. 我使用 'articles:likes' 和 'articles:updated' 执行 ZUNIONSTORE
  2. 结果我对结果和“articles:itemCount”执行 ZINTERSTORE
  3. 结果我只需执行 ZREVRANGEBYSCORE

这一切都可以找到并做我想做的事情,但是我是 Redis 的新手,并且愿意接受建议和改进。

真挚地,

- 詹姆士

4

1 回答 1

0

我同意你的解决方案。

为了改进,请考虑Transaction

创建

ZADD 'articles:created' 时间戳 ArticleID

ZADD 'articles:updated' 时间戳 ArticleID

ZADD '文章:喜欢' 0 ArticleID

SADD 'user:USERID:articles' ArticleID

执行

于 2012-06-28T04:21:44.910 回答