zoukankan      html  css  js  c++  java
  • 问题--关注列表和粉丝列表显示不稳定

    功能描述:绿色标签:已关注,  蓝色标签:互相关注 ,  红色标签:未关注

    1、问题

    (1)点开我的关注列表,里面应该出现的是绿色或者蓝色标签,但是有时候会出现红色标签,点击用户之后,发现是已关注状态。

    (2)我是A,我关注了B,然后我点开B的关注列表,发现B的关注列表里面,显示有很多人我已经关注了,但实际上,我并没有关注。

    2.问题排查

      (1)查代码发现取关注列表的时候,先根据用户的snsId从memcache中取出实体,如果实体不为空就把bean放入list ,然后继续循环。

      (2)如果1分钟缓存不存在,则从redis里面查,并判断是否被我关注

      (2)这样的话有一个隐藏的问题。如果C关注了B,C刷了一遍列表,那么此时会把B存入1分钟缓存,并且B的状态是已关注,(绿色标签)。

      这种情况下,D去刷C的关注列表,获取到B的snsId,然后从memcache查出B的实体,放入list,然后循环。那么问题就来了,因为C在刷列表的时候

    存的B的实体,并且B的状态是绿色标签,那么D刷列表的时候,不管D有没有关注B,D刷出来的结果都是已关注。

    3.解决方案

    从1分钟缓存查出实体后,重新给isFollowed和isFollowing赋值,保证关注和被关注状态的实时性。

  • 相关阅读:
    Query on The Trees(hdu 4010)
    背单词(bzoj 4567)
    P2819 图的m着色问题
    P1605 迷宫
    P1230 智力大冲浪
    P1082 同余方程
    P3372 【模板】线段树 1
    P2626 斐波那契数列(升级版)
    长生诀
    写给我第一个喜欢的男孩的歌
  • 原文地址:https://www.cnblogs.com/fubaizhaizhuren/p/5672798.html
Copyright © 2011-2022 走看看