replicaof ip地址 端口号 masterauth 主机密码
info replication
主机输入后显示:
从机输入后显示:
在主机输入数据:
在从机查看数据:
在第一个从机输入:
slaveof 182.92.0.84 6382
在第二个从机输入:
slaveof 182.92.0.84 6383
完成链接!
info replication
在主机输入显示:
在第一个从机输入显示:
在第二个从机输入显示:
连接成功!
在主机挂掉之后,选择一个从机输入:
slaveof no one
Slave启动成功连接到master后会发送一个sync命令;
Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改参数集命令,在后台进程执行完毕后,master将传送整个数据文件到salve,以完成一次完全同步。
全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步。
但是只要是重新连接master,一次完全同步(全量复制)将被自动执行。
反客为主的自动版,能够后台监控主机是否故障,如果故障了根据票数自动从库转换为主库
sentinel monitor host 182.92.0.84 6382 1 sentinel auth-pass host qiusuo521. sentinel down-after-milliseconds host 3000 //检测到主机挂掉后,多久选取一台从机作为主机,默认值是30s,这里调成3s
$ docker run -it --name sentinel -p 26379:26379 -v /etc/redis/sentinel.conf:/etc/sentinel.conf -d redis /bin/bash
进入容器,启动服务
# 进入容器 $ docker exec -it sentinel bash # 启动哨兵 redis-sentinel /etc/sentinel.conf
在master执行shutdown后
slave中的一个从机变为master,一个从机
重启之前的master之后,变为从机:
复制的缺点:复制延时-由于所有的写操作都是发生在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave、机器数量的增加也会使这个问题更加严重。