Rails 请教一个 Feed 的设计方法

jokry · 2012年04月28日 · 最后由 huacnlee 回复于 2012年05月02日 · 2906 次阅读

现在常见的 Feed 中,既来自关注的用户,也来自关注话题。

比如知乎,我的 Feed 中,既有我关注的用户提出的问答,也有我关注话题下的问答。那么我的 feed 里的问答应该如何获取?

我的想法是,通过关注的用户和话题,关联获取问答,最后求并集,然后按时间排序。

这个方法是最好的么,还有更优雅的处理么?

这种推拉模式用 redis 性能可能会比较乐观~ http://blog.waxman.me/how-to-build-a-fast-news-feed-in-redis

之前用过 timeline_fu,但是不是很理想

这个看起来非常不错,具体可以看 examples 目录的例子 https://github.com/gowalla/chronologic

不过,后端存储需要用到 Cassandra

https://github.com/felixclack/redis-timeline 这个 Gem 刚刚研究了一下,设计方式有值得参考的地方,它将每个关联的数据都设置一个 display_name 用于显示内容,查询出来的时候直接从 Redis 里面出来,都不需要关联主数据库查询了。 不过土鳖的是,后面数据存储的实现非常冗余,每个 follower 每个 @ 回复的列表都会有重复的数据。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号