redis16微博项目之粉丝拉取模式

粉丝拉取模式:

        上一节我们大致讲了一下redis推送微博的思路,不过推送微博还是存在一个明显的缺陷:假如这个用户有几千万粉丝,那么redis是不是就需要去创建几千万个推送链表?

        因此我们需要转变思路,将微博推送转换为粉丝主动拉取!

发布微博:

        发布微博的时候,我们需要把微博的信息转换成哈希 并且存贮在拉取表和个人文章表        

redis16微博项目之粉丝拉取模式_第1张图片

展示微博:

        首先获取所有关注的人,获取上次拉取微博的位置,根据上次拉取的微博位置来拉取数据。然后给微博排序,设置新的拉取的位置,写入到已拉取表中,获取微博的详细内容,最后获取粉丝和关注数。进行展示

redis16微博项目之粉丝拉取模式_第2张图片
redis16微博项目之粉丝拉取模式_第3张图片

        问:第一次我拉取了A的5,6,7  三条微博, 下次刷新页面, 我们如何从>7的微博开始拉取?

        解决:拉取时,设定一个lastpull 的时间点, 下次拉取时,取>lastpull时间节点的微博


        问:关注了很多人,如何拉取?

        解决:循环自己的关注列表,逐个取他们的新微博


        问:取出来之后放在哪儿?

        答: pull:$userid的链接里


        问:如果个人中心,只有前1000条

        答: ltrim,只取前1000条


        问:如果我关注 A,B两人, 从2人中,各取3条最新信息,这3+3条信息, 从时间上,是交错的, 如何按时间排序?

        答:我们发布时, 是发布的hash结构, 不能按时间来排序.

        解决:同步时,取微博后,记录本次取的微博的最大id,下次同步时,只取比最大id更大的微博

你可能感兴趣的:(redis16微博项目之粉丝拉取模式)