怎样实现基于 follow 关系的 timeline?
http://redis.io/topics/twitter-clone 这上面的设计写的挺清楚的。用的是redis+php为例。这个twitter-clone的各种版本都有了。Node.js版:https://github.com/jsoverson/RetwisJSPHP版:http://code.google.com/p/redis/downloads/listJava版:https://github.com/SpringSource/spring-data-keyvalue-examplespython版:http://www.google.com.hk/?q=RetwispyRoR版:http://retwisrb.danlucraft.com/--------------------------------修正一下http://redis.io/topics/twitter-clone 上的关于follow关系timeline没有实现,但是只需要再建立follow关系的队列而不仅仅是集合就容易实现了,队列就有先后关系了。
■网友
这个跟用django还是啥框架没关系。信息流是组织数据的一种方式,因为关注的人的ID是离散的,所以用传统的关系型数据库来处理,比如mysql来处理的时候就存在问题,比如遇到in查询无法使用索引,在大数据量的时候就成了慢查询。解决的办法是通过redis等NoSQL数据存储方案来实现push的模型。每个登录的用户在redis维护一个定长队列(比如300或者500),当发一条信息的时候就看看关注自己的人那些在线的,然后把信息主动推送到他们的队列中去。大体上就是类似的方法了。有现成的仿twitter的Python实现,你可以参考一下
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 北京22家市属医院均开展安检基本实现重点区域安检措施全覆盖
- 长江流域渔民退捕“上岸”实现扩产新致富
- 实现“甜蜜计划”,这对中哈跨国夫妻好甜
- 北京地铁11号线西段三座车站提前实现主体结构封顶
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
