问题--关注列表和粉丝列表显示不稳定

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

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

posted @ 2016-07-15 10:48  浮白斋主人  阅读(474)  评论(0编辑  收藏  举报