目录
一、场景
1、直播间评论
1、发评论调用api,同步调用调用另一个收敛微服务,最后写入redis。
2、定时pull redis中的数据,到长连接服务器,长连接服务器把数据广播给主播端。
3、redis使用的是zset
3、长连接服务器可以横向扩容。
2、直播间榜单top10
1、由于人数多,zset+k-v,zset存储榜单top10数据,其它全量数据存储在kv
k:主播id;score:点赞数;v:点赞用户ID
粉丝亲密度榜单
1、千万级别用户,分1w的shard,每个shard存储一千个用户数据,最后查询redis数据在内存中聚合不同shard里的排序top数据
热key问题
1、背景:redis一个实例一个key的查询峰值在10w左右,如果qps很大就扛不住这么大的流量
2、解法:redis读写分离、key冗余存储、拆分shard
3、写入qps高,可以分shard,不同用户写到不同shard
3、点赞
4、抢红包
天降红包
二、Redis集群
redis集群架构演进
1、原始架构
问题:
1、业务一致性问题,既要高可用,又要一致性
2、机房宕机,数据切换跨团队合作同步慢
3、集群过大,需要控制容灾时的风险
2、双机房冷备
问题:切换时候的数据丢失
3、单机房多AZ(最终方案)
双机房访问极端情况下会有一致性问题(如:分布式锁失效),所以这个场景采用单机房多AZ的方式。