2
我正在製作一個真的我的網站上的簡單評論系統,使用列表;使用redis的評論系統 - 使用列表?
通過帶註釋項目標識的LPUSH完成發佈。檢索通過LRANGE完成,然後循環通過結果數組。
我想知道這是否是處理評論的最佳方式?在性能水平上這是一個好主意嗎?
另外我將如何去適度?它似乎不是一種從列表中刪除特定項目的方法。
在此先感謝。
我正在製作一個真的我的網站上的簡單評論系統,使用列表;使用redis的評論系統 - 使用列表?
通過帶註釋項目標識的LPUSH完成發佈。檢索通過LRANGE完成,然後循環通過結果數組。
我想知道這是否是處理評論的最佳方式?在性能水平上這是一個好主意嗎?
另外我將如何去適度?它似乎不是一種從列表中刪除特定項目的方法。
在此先感謝。
如果您希望能夠根據索引刪除評論,而不是使用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
和單一註釋的缺失可以像做。
你認爲從性能的角度來看,使用集合和哈希值也更好? – 2012-07-23 17:17:49
對於刪除,SREM中的'O(N)'需要'O(1)'(例如刪除1項),在LREM中,'N'是列表的長度。 – Niloct 2012-07-23 17:20:42