1.是什么?
主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,master以写为主,slave以读为主。
2.能干嘛?
①读写分离
②容灾恢复
3.复制三个配置文件并修改
daemonize yes pidfile xxxxx port xxxx logfile xxxx dbfilename
3.如何设置主从关系?
首先,配从(库)不配主(库),可以通过info replication命令查看当前库的主从信息,默认为主库。
可以对从库通过slaveof 主库ip 主库端口 命令连接到主库。
可以通过slaveof no one 将当前Redis停止与其他Redis之间同步,转为主库。(中途变更转向,会清除之前的数据,重新建立最新的)
4.复制原理
①从库启动成功后会连接到主库后发送一条同步命令
②主库接收到命令后启动后台的存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕之后,主库将传送整个数据文件到从库以完成一次完全同步。
③从库服务在接收到主库数据文件后将其存盘并加载到内存中。(全量复制)
④主库继续将新的所有收集到的修改命令依次传送给从库进行同步。(增量复制)
⑤只要是重新连接主库,全量同步将被自动执行。
5.哨兵模式(Sentinel)
通过前面简单的主从配置,主节点Master 只有一个,一旦主节点挂掉之后,从节点没法担起主节点的任务,那么整个系统也无法运行。如果主节点挂掉之后,从节点能够自动变成主节点,那么问题就解决了,于是哨兵模式诞生了。
哨兵模式是反客为主的自动版本,能够在后台监控主机是否故障,如果出现了故障,哨兵将根据投票数自动将从库转化为主库,并让其他从机和新主机建立主从关系。
搭建步骤:
①、在配置文件目录下新建 sentinel.conf 文件(文件名不能错),配置相应内容。
sentinel monitor 被监控机器的名字(自己起名字) ip地址 端口号 得票数
得票数是指主库挂掉后,从库开始投票,得票数多少后成为主机。
②启动哨兵开始监控
redis-sentinel /etc/redis/sentinel.conf
6.主从复制的缺点
复制延时:
由于所有的写操作都是在主库上操作然后同步更新到从库上,所以从主库同步到从库机器上有一定的延时,当系统繁忙的时候,延迟问题会更加严重,从库机器数量的增加也会使这个问题更加严重。