前言
#主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。
一、主从复制原理
1、Slave启动成功连接到master后会发送一个sync命令。
2、Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步。
3、全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
4、增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步,但是只要是重新连接master,一次完全同步(全量复制)将被自动执行。
二、作用
1、读写分离
2、容灾恢复
二、配置步骤
1、配从(库)不配主(库)
2、部署两台Redis 6380、6381
include /usr/local/bin/redis-config/redis.conf
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb
3、查看运行中Redis:ps -ef | grep redis-server
4、命令行配置:slaveof 主库IP 主库端口
ps:每次与master断开之后,都需要重新连接,除非配置进redis.conf文件,
5 、分别配置从库6380,6381,查看信息 info replication,此时发现主库master_link_status=down,这是因为没有设置主库密码。
6、如果主库设置密码,则需加上 config set masterauth ${password},否则主库不会显示连接的从库
7、查看主库信息
5、测试主从复制
6、从库只能读,不能写
三、哨兵模式配置
1、命令行手动设置:主库挂掉后,选择一个从库,执行slaveof no one,晋升为主库
2、反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库
3、配置sentinel.conf文件,名称不能错
sentinel monitor mymaster 127.0.0.1 6379 1
sentinel auth-pass mymaster 123