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赋值,保证关注和被关注状态的实时性。

  • 相关阅读:
    Zookeeper搭建集群及协同
    无限可能,Elasticsearch(一)
    如何打造一款m3u8视频爬虫
    垃圾如何进行自救
    必知必会的JavaJDK工具
    如何在局域网内开一家电影院
    谈谈网络游戏中的延迟解决方案
    简述一致性哈希算法
    Python网络爬虫实战(五)批量下载B站收藏夹视频
    Python网络爬虫实战(四)模拟登录
  • 原文地址:https://www.cnblogs.com/fubaizhaizhuren/p/5672798.html
Copyright © 2011-2022 走看看