一、Redis集群方式
主从模式、哨兵模式、集群模式(cluster)
主从复制:解决数据备份,读写分离。但是无法实现自动化故障转移,无法对master进行扩容。
哨兵模式:实现自动化故障恢复。在读写分离下,单节点导致服务不可用。
集群模式:解决负载均衡以及存储问题。
模式 |
版本 |
优点 |
缺点 |
主从模式 |
redis2.8之前 |
1、解决数据备份问题 |
1、master故障,无法自动故障转移,需人工介入 |
哨兵模式 |
redis2.8级之后的模式 |
1、Master 状态监测 |
1、slave节点下线,sentinel不会对其进行故障转移,连接从节点的客户端因为无法获取到新的可用从节点 |
redis cluster模式 |
redis3.0版本之后 |
1、有效的解决了redis在分布式方面的需求 |
1、架构比较新,最佳实践较少 |
二、集群模式简介
集群中的节点分为主节点和从节点;只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。
redis集群采用master-slave的方式,即1个master节点可以包含多个slave节点,slave节点主要对master节点的数据进行备份,如果master节点挂了,可以启动salve节点替换掉原先的master节点,作为新的master节点。redis集群使用投票容错机制,如果集群中超过半数以上的节点投票认为某节点挂了,那么这个节点就会被认为挂掉了,所以,在设置redis集群时,最少的master节点为3个,如果每一个master节点都添加一个slave节点的话,搭建一个redis集群总共需要6个节点,即3个master节点,3个slave节点。
redis集群没有统一的入口,客户端连接集群的时候,连接集群中的任意节点即可。
redis集群的运用主要是针对海量数据+高并发+高可用的场景。