2012-07-23 115 views
2

我正在製作一個真的我的網站上的簡單評論系統,使用列表;使用redis的評論系統 - 使用列表?

通過帶註釋項目標識的LPUSH完成發佈。檢索通過LRANGE完成,然後循環通過結果數組。

我想知道這是否是處理評論的最佳方式?在性能水平上這是一個好主意嗎?

另外我將如何去適度?它似乎不是一種從列表中刪除特定項目的方法。

在此先感謝。

回答

0

如果您希望能夠根據索引刪除評論,而不是使用LREM(根據列表項值查找和刪除),則可以使用集合和散列。

保持一組簡單的每篇文章,與上發表評論的ID:

SADD Comments:post:1 1 
SADD Comments:post:1 2 

(這將標記具有註釋ID 1交ID 1和2)

然後,對於每個評論設置散列關鍵字:

HSET Comments:1 1 "This will be a comment for post 1" 
HSET Comments:1 2 "A second comment for the same post" 

然後你就可以查詢哈希Comments:1對例如所有評論文章ID 1:

SREM Comments:post:1 1 
HDEL Comments:1 1 

(此處刪去第一個評論):

HGETALL Comments:1 

和單一註釋的缺失可以像做。

+0

你認爲從性能的角度來看,使用集合和哈希值也更好? – 2012-07-23 17:17:49

+0

對於刪除,SREM中的'O(N)'需要'O(1)'(例如刪除1項),在LREM中,'N'是列表的長度。 – Niloct 2012-07-23 17:20:42