文章目录
参考文章
redis系列之——高可用(主从、哨兵、集群)
1.主从模式(Master - Slave)
整体概述
一个主节点(Master),多个从节点(Slave),从节点下还可以有从节点
- Master可读可写;
- Slave只读,不断载入rdb文件,与Master保持同步。
优缺点
-
优点:读写分离,负载均衡;
-
缺点:
– Master如果崩溃,需要等待重启;
– 所有主机存储的数据一致
2.哨兵模式(Sentinel)
哨兵模式是基于主从模式的。
哨兵并不是Redis服务,是一个独立的进程,作用就是监控多个Redis结点的运行情况。
哨兵的作用
- 向监视的所有Redis结点发送指令,监控其运行状态;
- 当检测到Master宕机,所有的哨兵通过选举机制选出一台Slave作为新的Master;
- 选出新的Master之后,通过发布订阅模式通知其他的Slave,更换他们跟随的Master。
优缺点
-
优点:
– 读写分离,负载均衡;
– 当监视的Master挂掉,Sentinel会通过选举机制选出新的Master;
-
缺点:所有节点存储的数据一致。
3.集群模式(Cluster)
将数据分片存储(下图表示数据分成三个分片),解决多台节点存储数据一致的问题。
每个分片内部可以是主从模式或哨兵模式(下图表示一主一从)
集群模式对数据的访问
在集群模式下,每个分片中存储的数据都是不一样的,
但仍然可以访问任意一个节点来尝试获取数据,Redis在判断key不在本节点时,会跳转到这个key对应的结点中去从而完成查询。