来源:https://blog.csdn.net/qq_34246646/article/details/104402510
redis作用
topic:高并发、亿级流量、高性能、海量数据的场景,电商网站的商品详情页系统的缓存架构
商品详情页系统,大型电商网站,会有很多部分组成,但是支撑高并发、亿级流量的,主要就是其中的大型的缓存架构
在这个大型的缓存架构中,redis是最最基础的一层
高并发,缓存架构中除了redis,还有其他的组成部分,但是redis至关重要
大量的离散请求,随机请求,各种你未知的用户过来的请求,上千万用户过来访问,每个用户访问10次; 集中式的请求,1个用户过来,一天访问1亿次
支撑商品展示的最重要的,就是redis cluster,去抗住每天上亿的请求流量,支撑高并发的访问
redis cluster在整个缓存架构中,如何跟其他几个部分搭配起来组成一个大型的缓存系统,后面再讲
redis高可用
redis的每个特点,要解决的问题是什么???
redis:持久化、复制(主从架构)、哨兵(高可用,主备切换)、redis cluster(海量数据+横向扩容+高可用/主备切换)
持久化:高可用的一部分,在发生redis集群灾难的情况下(比如说部分master+slave全部死掉了),如何快速进行数据恢复,快速实现服务可用,才能实现整个系统的高可用
复制:主从架构,master -> slave 复制,读写分离的架构,写master,读slave,横向扩容slave支撑更高的读吞吐,读高并发,10万,20万,30万,上百万,QPS,横向扩容
哨兵:高可用,主从架构,在master故障的时候,快速将slave切换成master,实现快速的灾难恢复,实现高可用性
redis cluster:多master读写,数据分布式的存储,横向扩容,水平扩容,快速支撑高达的数据量+更高的读写QPS,自动进行master -> slave的主备切换,高可用
总结:让底层的缓存系统,redis,实现能够任意水平扩容,支撑海量数据(1T+,几十T,1个node10G * 600个node==6T),支撑很高的读写QPS(redis单机在几万QPS,10台,几十万QPS),高可用性(每个redis实例都做好AOF+RDB的备份策略+容灾策略,slave -> master主备切换)
是缓存架构支撑:1T+海量数据、10万+读写QPS、99.99%高可用性
redis的第一套企业级的架构
如果你的数据量不大,单master就可以容纳,一般来说你的缓存的总量在10G以内就可以,那么建议按照以下架构去部署redis:
方案:redis持久化+备份方案+容灾方案+replication(主从+读写分离)+sentinal(哨兵集群,3个节点,高可用性)
可以支撑的数据量在10G以内,可以支撑的写QPS在几万左右,可以支撑的读QPS可以上10万以上(随你的需求,水平扩容slave节点就可以),可用性在99.99%
redis的第二套企业级架构
如果你的数据量很大,大型电商网站的商品详情页的架构(对标那些国内排名前三的大电商网站,*宝,*东,*宁易购),能支撑海量数据,redis cluster
方案:多master分布式存储数据,水平扩容
支撑更多的数据量,1T+以上没问题,只要扩容master即可
读写QPS分别都达到几十万都没问题,只要扩容master即可,redis cluster,读写分离,支持不太好,readonly才能去slave上读
支撑99.99%可用性,也没问题,slave -> master的主备切换,冗余slave去进一步提升可用性的方案(每个master挂一个slave,但是整个集群再加个3个slave冗余一下)
后续的务系统的开发,主要是基于redis cluster去做