redis主从复制
概念:是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为主节点,后者称为从节点;数据的赋值是单项的,只能由主节点到从节点。主节点以写为主,从节点以读为主
默认情况下,每台redis服务器都是主节点,且一个主节点可以有多个从节点,但一个从节点只能有一个主节点。
复制原理
slave启动成功连接到master后会发送一个sync同步命令
master接到命令,启动后台的存盘进程,同时搜集所有接收到的修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,并完成一次完全同步。
全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中
增量复制:master继续将新的所有搜集到的修改命令一次传给slave,完成同步,但是只要是重新连接到master,一次完全同步将被自动执行
哨兵模式
原理:哨兵通过发送命令,,等待redis服务器响应,等待redis服务器响应,从而监控运行的多个redis实例
作用:
1.通过发送命令,让redis服务器返回监控其运行状态,包括主服务器和从服务器
2.当哨兵检测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让他们切换主机。
配置哨兵配置文件sentinel.conf
sentinel monitor 被监控的名称 host port 1
后面这个数字1,代表主机挂了,slave投票看让谁接替成为主机。
如果主机重新连接,只能归并到新的主机下。
优点:
1.哨兵集群,基于主从复制模式,所有的主从配置优点,它全有
2.主从可以切换,故障可以转移,系统的可用性就会更好
3.哨兵模式就是主从模式的升级,手动到自动,更加健壮
缺点:
1.redis不好在线扩容,集群容量一旦达到上限,在线扩容就十分麻烦
2.哨兵模式的配置麻烦