环境准备
节点准备
| 节点 | 系统 | IP | 角色 |
|---|---|---|---|
| node1 | Rocky9.2 | 192.168.202.129 | Main |
| node2 | Rocky9.2 | 192.168.202.130 | Secondary |
| node3 | Rocky9.2 | 192.168.202.131 | Secondary |
配置关闭防火墙
systemctl disable firewalld --now
下载编译Redis
修改Redis配置文件
Main节点配置
编辑redis.conf文件(该文件可以从下载的redis源码目录拷贝),配置文件需要修改的内容如下
daemonize yes # 允许后台运行
bind * # 设置监听的IP地址为所有地址
protected-mode no # 保护模式的生效条件:保护模式已打开`且`未指定bind`且`未指定密码
dir /usr/local/redis/data # 指定工作目录
logfile "/usr/local/redis/log/redis.log" # 配置日志文件
requirepass 123456 # 配置密码
Secondary节点配置
两台secondary节点都是如下的配置
daemonize yes
bind *
protected-mode no
dir /usr/local/redis/data # 指定工作目录
logfile "/usr/local/redis/log/redis.log" # 配置日志文件
requirepass 654321 # 配置密码
replicaof 192.168.202.129 6379 # 配置master节点的ip和端口
masterauth 123456 # 配置master节点的认证密码
启动各个节点
启动main节点
[root@node1 ~]# redis-server /usr/local/redis/conf/redis.conf
启动两台Secondary节点
[root@node2 ~]# redis-server /usr/local/redis/conf/redis.conf
[root@node3 ~]# redis-server /usr/local/redis/conf/redis.conf
查看集群节点
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.202.130,port=6379,state=online,offset=1624,lag=1
slave1:ip=192.168.202.131,port=6379,state=online,offset=1624,lag=0
master_failover_state:no-failover
master_replid:ed614ba98a153f419741e75e97233f088ee7ee0b
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1624
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1624
连接主机查看存储情况
[root@node2 ~]# redis-cli -a 654321
127.0.0.1:6379> keys *
1) "a" # 可以看到Secondary将main主机中的数据同步过来了