Redis 三主三从高可用集群部署全过程详解

一、环境规划

准备3 台服务器,每台部署两个 Redis 实例:

IP地址

主机名

角色

端口

10.0.0.41

redis01

master1,slave1

6379,6380

10.0.0.42

redis02

master2,slave2

6379,6380

10.0.0.43

redis03

master3,slave3

6379,6380

每个 Redis 实例运行在不同的端口上。

二、配置 Redis 实例

1. 在每台主机上安装 Redis

(1) 下载源码包

下载地址:https://redis.io/downloads/

也可以在有网环境直接获取:

复制
wget https://download.redis.io/releases/redis-7.0.15.tar.gz1.

(2) 解压并编译

复制
# 解压到/data目录下 tar -xvf redis-7.0.15.tar.gz -C /opt # 编译 [root@redis01 ~]# cd /opt [root@redis01 opt]# cd redis-7.0.15/ [root@redis01 redis-7.0.15]# make1.2.3.4.5.6.7.

编译完成后,二进制文件会生成在 src 目录下:

redis-server:Redis 服务端redis-cli:Redis 客户端

(3) 分发到其他主机

将编译好的 Redis 文件夹复制到其他两台主机:

复制
scp -rp /opt/redis-7.0.15/ root@10.0.0.42:/opt scp -rp /opt/redis-7.0.15/ root@10.0.0.43:/opt1.2.
2. 配置 Redis 实例

在每台主机上运行两个 Redis 实例,需要为每个实例创建独立的配置文件和数据目录。以主机 1 为例:

(1) 创建配置文件存放路径

复制
mkdir -p /opt/redis/{6379,6380}/{conf,data,logs,pid}1.

(2) master1-6379配置文件:

复制
cat > /opt/redis/6379/conf/redis_6379.conf <<EOF bind 0.0.0.0 protected-mode no port 6379 daemonize yes logfile /opt/redis/6379/logs/redis_6379.log pidfile /opt/redis/6379/pid/redis_6379.pid dbfilename "redis_6379.rdb" dir /opt/redis/6379/data cluster-enabled yes cluster-config-file node_6379.conf cluster-node-timeout 15000 EOF1.2.3.4.5.6.7.8.9.10.11.12.13.

(3) slave-7380配置文件:

复制
cat > /opt/redis/6380/conf/redis_6380.conf << EOF bind 0.0.0.0 protected-mode no # 指定 Redis 监听的 TCP 端口,默认 port 6380 daemonize yes logfile /opt/redis/6380/logs/redis_6380.log pidfile /opt/redis/6380/pid/redis_6380.pid dbfilename "redis_6380.rdb" dir /opt/redis/6380/data cluster-enabled yes cluster-config-file node_6380.conf cluster-node-timeout 15000 EOF1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

配置文件常用字段:

bind:指定 Redis 服务绑定的 IP 地址,默认127.0.0.1(仅本机访问)protected-mode:是否启用保护模式,默认为yes,Redis 在未设置密码且非本地访问时,自动拒绝连接port:指定redis监听的TCP端口,默认6379daemonize:指定redis是否以后台守护进程模式运行,默认为nologfile:指定日志输出文件路径pidfile:pid文件存放位置dir:数据文件目录,Redis 将持久化文件(如 RDB 文件和 AOF 文件)存储在此目录cluster-enabled:启用 Redis 集群模式,默认为nocluster-config-file:指定 Redis 集群节点的配置文件cluster-node-timeout:Redis 集群中节点之间通信的超时时间,默认15000 毫秒

(4) 配置环境变量

复制
vi /etc/profile export PATH=$PATH:/opt/redis-7.0.15/src source /etc/profile1.2.3.4.

(5) 启动redis

复制
# 启动6379 redis-server /opt/redis/6379/conf/redis_6379.conf # 启动7380 redis-server /opt/redis/6380/conf/redis_6380.conf # 停止 redis-cli -c -h 10.0.0.41 -p 6379 shutdown redis-cli -c -h 10.0.0.41 -p 6380 shutdown1.2.3.4.5.6.7.8.

(6) 配置主机 2 和主机 3

重复上述步骤,将每个节点的redis都启动起来 查看结果:

复制
ps -ef |grep redis redis-server --version1.2.3.

每个节点都运行两个redis:

三、创建 Redis 集群

1. 启用集群模式

在所有节点启动完成后,可以通过 redis-cli 创建集群。任选一台主机,执行以下命令:

复制
redis-cli --cluster create \ 10.0.0.41:6379 10.0.0.42:6379 10.0.0.43:6379 \ 10.0.0.41:6380 10.0.0.42:6380 10.0.0.43:6380 \ --cluster-replicas 11.2.3.4.

--cluster-replicas 1 表示每个主节点有一个从节点。

【温馨提示】每个节点需要关闭防火墙或开通对应的实例端口:

输入yes,接受。

创建完成后,Redis 会自动分配主从角色:

2. 验证集群状态

通过以下命令查看集群状态:

复制
redis-cli -p 6379 cluster nodes1.

你应该看到输出类似以下内容:

至此,集群已经部署完成!

阅读剩余
THE END