Twitterのフォロー機能を複製しているとします。私の知る限り、Redisを使用した次の設計に誰もが同意するようになりました。
joeが後に続くすべてのツイートは、key = tweet_id、score = tweet_timestampのソートされたセット「ss:joe」に保存されます。
つまり、joeがladygagaをフォローすると、ladygagaのツイートが「ss:joe」に追加されます。
問題は、joeがladygagaのフォローを解除したときに、「ss:joe」からladygagaのツイートを削除するにはどうすればよいですか?
すべての「ss:joe」ツイートを繰り返して、ladygagaに属するものを削除します。
私が考えることができる最善の方法は、自分のツイートを保存するすべてのユーザーに対して別の並べ替えられたセットを維持することです。したがって、ladygagaはkey = tweet_id、score = tweet_timestampの並べ替えられたセット「tweets:ladygaga」を持ち、ZINTERSTOREでladygagaのツイートを選択できます。 「ss:joe」と「tweets:ladygaga」。
より良い解決策はありますか?