我的网络应用中有一个活动流,它使用的设置几乎与此处描述的相同:How to implement the activity stream in a social network
简而言之:数据结构目前只包含一个长的非规范化MySQL表。
上述帖子还建议使用Redis作为每个用户最近100次左右活动的缓存。我已经开始开发这个方法,每个用户都有一个名为" uid:123:activities"每个列表项都是一个json编码的PHP数组,保存为字符串。 JSON包含诸如" user_id"," time"," photo_id"等信息。等
但是,我似乎遇到了一个问题。当从应用程序中删除该活动的某个参与者时,如何从Redis中的用户列表中删除活动?例如如果您关注的人删除了他们的帐户,则需要从您的流中删除涉及他们的任何活动。我看到两种可能的方法,这两种方法看起来都不太棒:
很多人建议将Redis用于以类似方式构建的活动流,但我还没有看到使列表与原始数据源保持同步的问题。
在我走下选项2的路线之前,有没有人有任何其他建议?
答案 0 :(得分:1)
我是Stream-Framework和getstream.io的作者之一 最常见的方法是:
1。)扇出删除并从每个Feed中删除它们,并且:
2。)在执行读取时添加过滤层
如果人们提交了不当内容,您拥有高级隐私设置,或者出于其他原因想要快速删除数据,则第二步非常有用。