需求是这样的,玩过微博的大家都知道,这以下特点
1.可以关注很多人
2.每个人都可以发微博
3.当我隔一段时间重新登录微博,会自动将我关注的人发的最新微博,按照时间顺序展示
请问,如何用php和redis实现这样一个订阅,希望你能给个思路,或者参考资料
(求思路,不要具体答案,但希望尽量详尽)
要想知道关注的人发了那些微博,有两种方式,一个是推,一个是拉
推的方式是每一个发微博的人都会将自己发的微博ID推送到自己的所有粉丝。
拉的方式是每个人自己主动去拉自己关注的人的所有最新的微博,如果关注的人比较多,也是不可行的
总体来说推拉是要结合的,具体怎么结合很难说,每个用户都会有自己的list,用来存储未读的微博ID,然后不断的去推拉,无论是推拉过程肯定都是背后的服务在处理,不是实时的。
获取微博也不是原来想象中的SQL的select批量获取,全部是原子性的操作,比如有100条未读的微博,会循环100次从缓存中获取,或者使用redis的mutil批量获取,然后没有读到的会回源到数据库进行获取,可能会觉得这样很慢,不过实际使用过程中这样并不慢,因为使用了大量的缓存
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。