1.单机redis在海量数据面前的瓶颈
单Master节点的数据存储毕竟有限(根据服务器配置,另外不建议服务器内存高于10G,因为太大了,会导致fork,主从复制慢等问题)
2.怎么才能够突破单机瓶颈,让redis支撑海量数据?
3.redis的集群架构
-
支撑N个redis master node,每个master node都可以挂载多个slave node
-
读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读(当然一般不建议这么做,一般slave仅做备份用,读还是在master节点上)
-
高可用,因为每个master都有salve节点,那么如果mater挂掉,redis cluster这套机制,就会自动将某个slave切换成master
我们只要基于redis cluster去搭建redis集群即可,不需要手工去搭建replication复制+主从架构+读写分离+哨兵集群+高可用
4.redis cluster vs replication + sentinal
- 如果你的数据量很少,主要是承载高并发高性能的场景,比如你的缓存一般就几个G,单机足够了
- replication:一个mater,多个slave,要几个slave跟你的要求的读吞吐量有关系,然后自己搭建一个sentinal集群,去保证redis主从架构的高可用性,就可以了。一般写可到达几万+,写可以达到10万+
- redis cluster,主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster。一般可支持海量数据(一个节点读写为几万+,那么100多个节点,就可以支持T级数据),只要水平扩容多个节点就可达到