2012-06-08 129 views
2

我設計了我的第一個Redis數據庫,並希望得到一些反饋,建議或提示。Redis數據庫設計基礎

概述:

可以通過喜歡在稍後進行排序,創建日期,更新我的Redis數據庫存儲的文章,作者等...

文章還含有「項目」我還需要以確定哪些物品在其中包含1個物品。

創作

當創建一個新的文章我寫它的ID各種按鍵

ZADD '的文章:創建' 時間戳條款ArticleID

ZADD '的文章:更新' 時間戳條款ArticleID

ZADD'articles:likes'0 ArticleID

SADD'user:USERI d:文章條款ArticleID

每當文章更新

ZADD '的文章:更新' 時間戳條款ArticleID

每當一個項目添加到文章

ZADD '的文章:ITEMCOUNT' ItemCount中條款ArticleID

如果一個項目被刪除,並且沒有項目依然存在,我只是刪除其成員

ZREM「阿爾季克萊斯:ITEMCOUNT」條款ArticleID

所以,當談到排序我做到以下幾點:

  1. 我進行ZUNIONSTORE與‘文章:喜歡’和‘文章:更新’
  2. 隨着我對結果對結果的ZINTERSTORE和「文章:ITEMCOUNT」
  3. 有了結果,我只是執行ZREVRANGEBYSCORE

這一切工作查找和做什麼,我想要它做的,但是我是新來的雷迪斯並接受建議和改進。

真誠,

- 詹姆斯

回答

0

我同意你的解決方案。

改進的地方,想想Transaction

創作

ZADD '的文章:創建' 時間戳條款ArticleID

ZADD '的文章:更新' 時間戳條款ArticleID

ZADD '的文章:喜歡' 0條款ArticleID

SADD '用戶:用戶名:文章' 條款ArticleID

EXEC

+0

感謝您的答覆,謝謝你提出了這個MULTI命令,我再有1後續問題。 我想要篩選結果的方法越多,爲了特定目的需要創建的鍵越多,顯然每個鍵都只包含文章ID和分數,目前我們有大約30種不同的篩選方式,來自SQL似乎很奇怪,因爲每個ID都在30個不同的鍵上重複。 因此,簡而言之,它是如何完成的,如果是這樣,這是否使得redis成爲我的要求的不好選擇。 此致 - - James –