搭建Redis复制集群

79 阅读2分钟

环境准备

节点准备

节点系统IP角色
node1Rocky9.2192.168.202.129Main
node2Rocky9.2192.168.202.130Secondary
node3Rocky9.2192.168.202.131Secondary

配置关闭防火墙

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主机中的数据同步过来了