Redis数据库设计基础

时间:2012-06-08 01:29:25

标签: database-design redis

我设计了我的第一个Redis数据库,想要一些反馈,建议或提示。

概述:

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

文章还包含“项目”我还需要确定哪些文章中有哪些项目。

创作

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

ZADD'文章:创建了'Timestamp ArticleID

ZADD'文章:更新了'Timestamp ArticleID

ZADD'文章:喜欢'0 ArticleID

SADD'用户:USERID:文章'ArticleID

每当文章更新时

ZADD'文章:更新了'Timestamp ArticleID

每当项目被添加到文章

ZADD'文章:itemCount'ItemCount ArticleID

如果删除了某个项目,并且没有剩余项目,我只需删除其成员

ZREM'文章:itemCount'ArticleID

因此,在进行排序时,我会执行以下操作:

  1. 我使用'articles:likes'和'articles:updated'
  2. 执行ZUNIONSTORE
  3. 结果我对结果和'articles:itemCount'
  4. 执行ZINTERSTORE
  5. 结果我只是执行ZREVRANGEBYSCORE
  6. 这一切都可以找到并做我想做的事情,但是我是Redis的新手并愿意接受建议和改进。

    此致

    - 詹姆斯

1 个答案:

答案 0 :(得分:0)

我同意你的解决方案。

为了改进,请考虑Transaction

<强>创作

  

MULTI

     

ZADD'文章:创建了'Timestamp ArticleID

     

ZADD'文章:更新了'Timestamp ArticleID

     

ZADD'文章:喜欢'0 ArticleID

     

SADD'用户:USERID:文章'ArticleID

     

EXEC