参考答案
结论:关系型数据库存持久关系,Redis缓存与辅助推送,消息队列异步推。核心要点:存储:MySQL表(user_id, follower_id)建索引,可按uid分表;Redis:用Set存粉丝ID缓存(SADD fans:uid fid),ZSet按时间排序,Bitmap统计活跃;推送:采用推拉结合,大V粉丝多时拉取,普通用户关注时推(写收件箱Redis List LPUSH msg:fid);利用Kafka或Redis Pub/Sub解耦;示例:用户发博,查粉丝Set,批量LPUSH到粉丝消息列表,前端拉取。注意:百万粉丝需限流和异步化,避免雪崩。