环境说明:
- Master:172.18.250.208 [node1]
- Slave 1:172.18.251.4 [node2]
- Slave 2:172.18.252.113 [node2]
时间同步
# ntpdate 172.18.0.1
安装redis
[root@node1 ~]# yum -y install redis #Slave节点亦同
[root@node1 ~]# systemctl enable redis
配置主节点
[root@node1 ~]# vim /etc/redis.conf
bind 0.0.0.0 #监听本机所有地址;生产环境中,应根据实际需要开放内网或公网特定IP的监听
requirepass guomai #定义认证密码
[root@node1 ~]# systemctl start redis
[root@node1 ~]# ss -tnlp |grep redis
LISTEN 0 128 *:6379 *:* users:(("redis-server",pid=10958,fd=4))
[root@node1 ~]# redis-cli
127.0.0.1:6379> auth guomai
OK
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set Amoy "XiaMen"
OK
127.0.0.1:6379> get Amoy
"XiaMen"
127.0.0.1:6379> exit
配置从节点
Redis CLI
配置并写入配置文件,因此,这里我将分别通过node2和node3节点演示[root@node2 ~]# vim /etc/redis.conf
bind 0.0.0.0
requirepass slaveauth #即便是从节点 也应设置密码认证
# slaveof <masterip> <masterport>
slaveof 172.18.250.208 6379
# masterauth <master-password>
masterauth guomai
[root@node2 ~]# systemctl start redis
[root@node2 ~]# redis-cli
127.0.0.1:6379> auth slaveauth #本地redis密码
OK
127.0.0.1:6379> keys *
1) "Amoy"
127.0.0.1:6379> get Amoy #说明和Master Redis同步成功
"XiaMen"
info argument
指令判断是否成功成为Slave
127.0.0.1:6379> info Replication
# Replication
role:slave #本机角色
master_host:172.18.250.208 #父节点IP
master_port:6379 #端口
master_link_status:up
master_last_io_seconds_ago:4
master_sync_in_progress:0
slave_repl_offset:535
slave_priority:100
slave_read_only:1 #是否只读; 1表示只读,0表示可读写
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
2.Redis CLI
方式
[root@node3 ~]# vim /etc/redis.conf
bind 0.0.0.0
requirepass slavepasswd
[root@node3 ~]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[root@node3 ~]# systemctl start redis
[root@node3 ~]# redis-cli
127.0.0.1:6379> auth slavepasswd
OK
127.0.0.1:6379> CONFIG GET slaveof
1) "slaveof"
2) ""
127.0.0.1:6379> CONFIG GET MASTERAUTH
1) "masterauth"
2) ""
127.0.0.1:6379> SLAVEOF 172.18.250.208 6379
127.0.0.1:6379> CONFIG SET MASTERAUTH guomai
OK
127.0.0.1:6379> CONFIG REWRITE #保存到配置文件中; 通过CLI添加的配置项将默认追加到主配末尾(如下图)
OK
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
1) "Amoy"
127.0.0.1:6379> get Amoy
"XiaMen"
127.0.0.1:6379> INFO REPLICATION
# Replication
role:slave #当前为Slave
master_host:172.18.250.208
master_port:6379
master_link_status:up
master_last_io_seconds_ago:6
master_sync_in_progress:0
slave_repl_offset:1515
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
主节点上查看Slave信息
[root@node1 ~]# redis-cli
127.0.0.1:6379> auth guomai
OK
127.0.0.1:6379> INFO Replication
# Replication
role:master #本机为Master
connected_slaves:2 #连接到本机的Slave数量
slave0:ip=172.18.251.4,port=6379,state=online,offset=2201,lag=1 #Slave的IP, 请求端口, 状态等相关信息
slave1:ip=172.18.252.113,port=6379,state=online,offset=2201,lag=0
master_repl_offset:2201
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:2200
127.0.0.1:6379> CLIENT LIST #查看客户端连接列表; 也可在Slave上通过该命令查看所有相关连接
id=2 addr=172.18.251.4:38463 fd=5 name= age=1610 idle=1 flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=replconf
id=63 addr=172.18.252.113:33543 fd=6 name= age=620 idle=1 flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=replconf
id=64 addr=127.0.0.1:56950 fd=7 name= age=193 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client