2014-02-13 34 views
-1

我是一個redis新手。Redis:當刪除項目存在多個列表中,並設置

我目前使用Redis的存儲職位

  • 甕:職務:1
  • 甕:職務:3
  • 甕:職位:5
  • ...

我存儲了用戶在此列表中發佈的帖子

  • 甕:用戶:1:帖=> [1,3,4,5]
  • 甕:用戶:2:帖=> [2,3,5,6,7,8,9]
  • ...

我也存儲最新的帖子列表列表

  • 甕:崗位:最新的=> [9,8,7]

我的問題是,如果我刪除一篇文章,例如:del urn:post:1

如何刪除帖子的ID在所有列表(或一組),有它 感謝很多

+0

你的例子沒有意義。帖子3和5如何同時與用戶1和用戶2相關聯? –

+0

用戶1可能創建了id = 1的帖子,並且像id = 5的帖子一樣。 –

+0

所以你需要將它們分成兩個不同的結構。並使用集而不是列表來獲得插入和刪除時的O(1)行爲。 –

回答

0

當您使用的「外鍵」 NoSQL的更新是由您決定。我會使用http://redis.io/commands/lrem

但請注意,您必須以正確的順序刪除數據。我的意思是有必要刪除這些引用,其中一些查詢可以找到對內容的引用。這意味着我會從帖子和最新版本中刪除文章ID,而不是刪除帖子本身。

+0

感謝您的快速回答,但在這種情況下沒有「外鍵」。 –

+0

什麼是_urn中提到的帖子ID(例如1):user:1:posts:_? –