Redis集群方案:主从、哨兵和Cluster
Redis集群模式主要有以下几种方式:
-
主从复制(redis2.8版本之前的模式)
-
Redis Sentinel 哨兵模式(redis2.8及之后的模式)
-
Redis Cluster集群模式(客户端sharding)(redis3.0版本之后)
-
Jedis sharding集群(客户端sharding)
-
利用中间件代理
在这里主要讲述主从复制、哨兵模式、Redis Cluster集群这三种方式。
主从复制
主从复制概念
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。
默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。
主从复制架构图:
工作原理
-
从服务器连接主服务器,发送SYNC命令;
-
主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
-
主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
-
从服务器收到快照文件后丢弃所有旧数据,