现在常见的 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 每个 @ 回复的列表都会有重复的数据。