手机直播互动点赞
- PV:
就是计数器加一操作
另外如果在加上两个业务场景那?
1) 高并发,海量请求,至少千万
2) 实时性
都能想到的技术方案大概估计有db, 缓存,分布式集群。
如果都用内存的分布式集群来顶这些压力,可靠性还是差点. 有数据丢失怎么办那? 那如果用db+cache那,应该的这样做,数据需要可靠的存储。
那是不是可以这样那:
1) 用户会hash到集群的不同节点;
2) 每个节点内存只保存固定时间的数据,然后有另外线程异步把这些固定时间内的数据持久化到db. 这样是不是可以不使用太大的内存,也不至于丢失所有的数据. 那这个固定的时间越短,那么可能丢失的数据就越少.
- 排行榜:
可以用redis提供的zadd来实现,这个针对并发小,数据量少的请求的场景还不错,但是针对像双11这样海量的请求的场景恐怕满足不了,QPS,ZADD KEY的热点问题,以及成本问题。
是不是还可以像pv那样的思路,维护一个单机的排行,然后整个集群请求的排行是对所有单机请求的一个merge. 单机版的排序需要一个高效的数据结构,高并发下线程安全,可以自动排序等.