Slave 启动成功连接到 master 后会发送一个 sync 同步命令,Master 接到命令后,会启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕后,master 将传送整个数据文件到 salve,并完成一次完整的同步。
主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主
IP地址 | 角色 |
---|---|
192.168.81.100 | redis-master |
192.168.81.101 | redis-slave1 |
192.168.81.102 | redis-slave2 |
-
配从不配主
192.168.81.101/192.168.81.102
bind 0.0.0.0 #表示redis允许所有地址连接。默认127.0.0.1,仅允许本地连接。 daemonize yes #允许redis后台运行 logfile "/usr/local/bin/redis/redis.log" #设置redis日志存放路径 requirepass "123456" #设置redis密码 protected-mode no #设置为no,允许外部网络访问 port 6379 #修改redis监听端口(可以自定义) pidfile "/usr/local/bin/redis/redis.pid" #pid存放目录 requirepass 123456 #设置redis密码 masterauth 123456 #主从同步master的密码 replicaof 192.168.81.100 6379
-
主机
bind 0.0.0.0 #表示redis允许所有地址连接。默认127.0.0.1,仅允许本地连接。 daemonize yes #允许redis后台运行 logfile "/usr/local/bin/redis/redis.log" #设置redis日志存放路径 requirepass "123456" #设置redis密码 protected-mode no #设置为no,允许外部网络访问 port 6379 #修改redis监听端口(可以自定义) pidfile "/usr/local/bin/redis/redis.pid" #pid存放目录 requirepass 123456 #设置redis密码 masterauth 123456 #主从同步master的密码
-
启动查看状态
# 显示有两个从机 # Replication role:master connected_slaves:2 slave0:ip=192.168.81.101,port=6379,state=online,offset=1470,lag=1 slave1:ip=192.168.81.102,port=6379,state=online,offset=1470,lag=1 master_failover_state:no-failover master_replid:e423bf4da80cd655727c45f1c06d099910228e04 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:1470 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:1470
-
主机插入数据之后从机同样可以查看
set k1 1 k2 2 k3 3 k4 4
从节点默认是只读的,如果支持写 需要设置如下值 no,然后重启redis服务 才能有效。
replica-read-only no