- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我打算在 redis 上编写一个简单的新闻网站,并支持关注者。我无法想象如何像在 Twitter 中那样组织用户时间线。我阅读了有关 Retwis ( http://redis.io/topics/twitter-clone ) 的信息,但它的提要创建方法似乎很愚蠢。如果我想删除条目怎么办?我应该从关注者提要中删除所有条目引用。如果我已经不关注某些用户怎么办?
最佳答案
有几种方法可以利用一点想象力来攻击您所描述的内容,这里有一些示例可以解决您的问题:
What if I want to remove entries?
可以为每个帖子维护一个集合,例如 post:$postid:users
,保存所有可能在其提要中包含该帖子的用户 ID;当要删除帖子时,只需从该集合中提取所有成员并遍历 ID 以将其从每个 uid:$userid:posts
集合中删除;说到这一点,您必须将最后一个变成一个集合,而不是像原始文章建议的那样,以便能够提取和删除单个项目,但这是微不足道的,逻辑非常相似。
What if I already do not follow some users?
当为每个单独的用户生成提要时,您必须迭代并读取每个 post:$postid
键,从中您可以访问作者的用户 ID;所以在显示帖子之前,你阅读了这个 id 并在 uid:$userid:following
集合中查找它,如果它在那里我们显示帖子,如果不存在我们从 uid 中删除它: $userid:posts
并且不显示它。
简而言之,为了在 Redis 中构建这种逻辑,您必须牢记以下内容:
使用 Redis,您可以自己做所有事情,但一旦您了解它,它实际上非常强大。
关于database - 如何在 Redis 上实现像 Twitter 或 Facebook 中的用户提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12357770/
我是一名优秀的程序员,十分优秀!