avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Redis 集群搭建与主从节点配置
文章

Redis 集群搭建与主从节点配置

发表于 2024-12-2 更新于 2024-12- 1
作者 jepwei
30~39 分钟 阅读

CentOS7 中 Redis 集群搭建与主从节点配置指南

本文将详细介绍如何在 CentOS7 系统上搭建 Redis 集群,并手动配置主从节点关系,确保集群的高可用性和数据冗余。

一、环境准备

1. 系统与软件版本

  • 操作系统:CentOS7-2009

  • Redis 版本:redis-5.0.13

2. 主机规划

我们将在三台主机上部署 Redis 集群,每台主机运行三个 Redis 实例,端口分别为 7000、7001、7002。

IP 地址

端口

192.168.64.70

7000、7001、7002

192.168.64.71

7000、7001、7002

192.168.64.72

7000、7001、7002

3. 下载并安装 Redis

首先,从 Redis 官方网站 下载 redis-5.0.13.tar.gz 压缩包。

将下载好的压缩包上传到每一台 Linux 服务器上的 /usr/local/ 目录。

二、Redis 集群配置

1. 编译安装 Redis

在每台服务器上执行以下命令:

# 进入上传目录
cd /usr/local/

# 解压安装包
tar -zxvf redis-5.0.13.tar.gz

# 重命名目录
mv redis-5.0.13 redis

# 进入 redis 目录
cd redis/

# 编译 Redis (CentOS7 自带 gcc,无需额外安装)
make

# 安装 Redis
make install

注意:如果编译或安装过程中出现错误,请确保系统已安装 gcc 和 make 工具。

2. 配置 Redis 集群实例

1)创建集群目录与实例

# 创建集群目录
mkdir -p /usr/local/redis/cluster

# 进入集群目录
cd /usr/local/redis/cluster/

# 创建实例目录
mkdir 7000 7001 7002

# 将 redis.conf 复制到每个实例目录
cp /usr/local/redis/redis.conf 7000/
cp /usr/local/redis/redis.conf 7001/
cp /usr/local/redis/redis.conf 7002/

2)修改配置文件

以 7000 实例为例,编辑 7000/redis.conf,需修改以下配置:

  • 注释绑定 IP(第 69 行)

    # bind 127.0.0.1
    
    
  • 关闭保护模式(第 88 行)

    protected-mode no
    
    
  • 修改端口号(第 92 行)

    port 7000
    
    
  • 后台启动(第 137 行)

    daemonize yes
    
    
  • 指定 PID 文件(第 155 行)

    pidfile /var/run/redis_7000.pid
    
    
  • 指定持久化文件名(第 257 行)

    dbfilename dump_7000.rdb
    
    
  • 指定持久化目录(第 264 行)

    dir /usr/local/redis/cluster/7000
    
    
  • 内存优化策略(第 700 行)

    maxmemory-policy noeviction
    
    
  • 关闭 AOF 持久化(第 704 行)

    appendonly no
    
    
  • 开启集群模式(第 832 行)

    cluster-enabled yes
    
    
  • 指定集群配置文件(第 840 行)

    cluster-config-file nodes_7000.conf
    
    
  • 修改集群超时时间(第 847 行)

    cluster-node-timeout 15000
    
    

3)复制配置文件

修改完成 7000/redis.conf 后,将其复制到 7001 和 7002 目录,并修改其中的端口号和文件名:

# 复制配置文件
cp 7000/redis.conf 7001/
cp 7000/redis.conf 7002/

# 修改 7001/redis.conf 中的端口和文件名为 7001
vim 7001/redis.conf

# 修改 7002/redis.conf 中的端口和文件名为 7002
vim 7002/redis.conf

4)将配置复制到其他主机

在第一台主机上配置完成后,可将集群目录复制到其他主机:

# 复制到第二台主机
scp -r /usr/local/redis/cluster root@192.168.64.71:/usr/local/redis/

# 复制到第三台主机
scp -r /usr/local/redis/cluster root@192.168.64.72:/usr/local/redis/

3. 启动 Redis 实例

1)创建启动与关闭脚本

在每台主机的 /usr/local/redis/cluster/ 目录下创建 start.sh 和 shutdown.sh 脚本。

  • start.sh

    #!/bin/bash
    redis-server 7000/redis.conf &
    redis-server 7001/redis.conf &
    redis-server 7002/redis.conf &
    
    
  • shutdown.sh

    #!/bin/bash
    redis-cli -p 7000 shutdown
    redis-cli -p 7001 shutdown
    redis-cli -p 7002 shutdown
    
    

2)赋予执行权限并运行脚本

# 赋予执行权限
chmod +x start.sh shutdown.sh

# 启动 Redis 实例
./start.sh

# 验证 Redis 实例是否启动
ps -ef | grep redis

3)将启动脚本复制到其他主机

# 复制启动脚本到第二台主机
scp start.sh shutdown.sh root@192.168.64.71:/usr/local/redis/cluster/

# 复制启动脚本到第三台主机
scp start.sh shutdown.sh root@192.168.64.72:/usr/local/redis/cluster/

在其他主机上同样赋予执行权限并运行 ./start.sh。

三、配置 Redis 集群主从节点

1. 集群节点规划

为了提高集群的高可用性,即使任意一台主机宕机,集群仍能正常工作,我们规划主从节点分布如下:

  • 主节点

    主节点

    IP 地址

    master1

    192.168.64.70:7000

    master2

    192.168.64.71:7000

    master3

    192.168.64.72:7000

  • 从节点

    主节点

    从节点1

    从节点2

    master1

    192.168.64.71:7001

    192.168.64.72:7002

    master2

    192.168.64.72:7001

    192.168.64.70:7002

    master3

    192.168.64.70:7001

    192.168.64.71:7002

2. 创建集群并指定主从关系

1)创建只有主节点的集群

首先,在任意一台主机上执行以下命令,创建只有主节点的集群:

redis-cli --cluster create --cluster-replicas 0 \\\\
192.168.64.70:7000 \\\\
192.168.64.71:7000 \\\\
192.168.64.72:7000

根据提示输入 yes 确认创建。

2)查询主节点的 ID

执行以下命令,获取主节点的 ID,用于后续指定从节点的主节点:

# 连接到任意主节点
redis-cli -h 192.168.64.70 -p 7000

# 查询集群节点信息
cluster nodes

示例输出:

8e45923f9c05948ca54cb0c70724a62805fd4585 192.168.64.70:7000@17000 master - 0 0 1 connected 0-5460
eee597ad3a6a4c9b6d360be4dc4e9c98460d6f4f 192.168.64.71:7000@17000 master - 0 0 2 connected 5461-10922
c1817049021a287cd56a058b75c8e754a7c4d449 192.168.64.72:7000@17000 master - 0 0 3 connected 10923-16383

3)为每个主节点添加从节点

根据规划,使用以下命令为每个主节点添加从节点:

  • 为 master1 (192.168.64.70:7000) 添加从节点

    redis-cli --cluster add-node 192.168.64.71:7001 192.168.64.70:7000 \\\\
    --cluster-slave --cluster-master-id 8e45923f9c05948ca54cb0c70724a62805fd4585
    
    redis-cli --cluster add-node 192.168.64.72:7002 192.168.64.70:7000 \\\\
    --cluster-slave --cluster-master-id 8e45923f9c05948ca54cb0c70724a62805fd4585
    
    
  • 为 master2 (192.168.64.71:7000) 添加从节点

    redis-cli --cluster add-node 192.168.64.72:7001 192.168.64.71:7000 \\\\
    --cluster-slave --cluster-master-id eee597ad3a6a4c9b6d360be4dc4e9c98460d6f4f
    
    redis-cli --cluster add-node 192.168.64.70:7002 192.168.64.71:7000 \\\\
    --cluster-slave --cluster-master-id eee597ad3a6a4c9b6d360be4dc4e9c98460d6f4f
    
    
  • 为 master3 (192.168.64.72:7000) 添加从节点

    redis-cli --cluster add-node 192.168.64.70:7001 192.168.64.72:7000 \\\\
    --cluster-slave --cluster-master-id c1817049021a287cd56a058b75c8e754a7c4d449
    
    redis-cli --cluster add-node 192.168.64.71:7002 192.168.64.72:7000 \\\\
    --cluster-slave --cluster-master-id c1817049021a287cd56a058b75c8e754a7c4d449
    
    

注意:--cluster-master-id 后面的 ID 需要替换为实际查询到的主节点 ID。

4)验证集群状态

执行以下命令,查看集群信息:

redis-cli -h 192.168.64.70 -p 7000
cluster info

输出应包含:

cluster_state: ok

表示集群已正常运行。

四、测试集群功能

1. 设置和获取键值

redis-cli -c -h 192.168.64.70 -p 7000
SET key1 "Redis cluster test"
GET key1

2. 模拟主节点宕机

停止一个主节点,验证集群是否自动将对应的从节点提升为主节点。

# 在主机 192.168.64.70 上停止 7000 实例
redis-cli -p 7000 shutdown

# 再次查询集群状态
redis-cli -h 192.168.64.71 -p 7000
cluster nodes

应看到原来的从节点已提升为主节点。

五、总结

通过以上步骤,我们成功在 CentOS7 系统上搭建了一个包含 9 个节点的 Redis 集群,并手动指定了主从节点关系。这样,当任意一台主机宕机时,集群仍能保证数据的可用性和一致性。

参考资料

  • Redis 官方文档

  • Redis 集群教程

备注:在实际生产环境中,建议对服务器和网络环境进行冗余和高可用配置,以提高系统的可靠性。

中间件
Redis
许可协议: 
分享

相关文章

5月 23, 2025

nacos 部署

环境:centos7 版本:nacos-2.3.2 部署方式:编译安装 1.安装jdk (自行安装) 2.下载nacos安装包并解压 3.配置nacos的配置文件 ### 注释掉原有的端口参数再添加这个 server.port=7200 ### 开启鉴权 nacos.core.auth.enable

12月 31, 2024

容器部署fastdfs

本文详细介绍了在Docker中部署FastDFS的步骤,包括创建工作目录、配置Docker Compose、启动服务、检查端口监听以及修改Nginx配置。首先,需在主机创建FastDFS工作目录并设置权限,然后编辑docker-compose.yml文件定义服务配置。接下来,通过docker-compose命令启动服务,并使用netstat命令确认端口监听情况。最后,若需调整Nginx的8888端口配置,可进入storage容器并编辑nginx.conf文件,完成后重启容器以应用更改。

12月 24, 2024

容器部署nacos

本文详细介绍了如何在 Docker 中部署 Nacos,包括前提条件和具体步骤。首先确保已安装 Docker,然后拉取 Nacos 镜像并创建必要的目录。接着设置目录权限,复制初始配置文件到本地,重新运行 Nacos 容器。最后,用户可以通过浏览器访问 Nacos 管理界面,并可选地启用鉴权。按照这些步骤,用户将能够成功在 Docker 上部署 Nacos,并根据需求进行进一步配置。

下一篇

MySQL 密码重置与账户解锁

上一篇

redis安装部署

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy