使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式

一、环境及版本说明

如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装:

  1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看

  2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看

说明:假设每台服务器已经安装好了Docker软件,并且redis集群的安装目录在/home/redis下面

操作系统 IP 操作系统版本 docker版本 redis版本
Linux 192.168.100.101 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.102 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.103 CentOS7.6(1810) 18.09.9 6.0.8
[环境及版本]

注意:101为主节点,102/103为从节点

二、主从模式优缺点(Master-Slave)

‌优点‌:

  1. ‌读写分离‌:从节点分担读请求,提升读取性能
  2. ‌数据冗余‌:从节点备份主节点数据,提高可靠性
  3. ‌配置简单‌:部署和维护成本低

‌缺点‌:

  1. ‌单点故障‌:主节点宕机需手动切换,服务中断时间长
  2. ‌写瓶颈‌:所有写操作集中在主节点
  3. ‌同步延迟‌:从节点数据可能滞后

‌适用场景‌:

  • 读多写少的应用(如缓存、日志系统)
  • 对高可用性要求不高的场景

‌三、**主节点配置(101)**‌

复制代码
1. 在/home/redis 目录下新增master.conf配置文件,且内容如下:
bash 复制代码
#master.conf文件
bind 0.0.0.0       #设置所有服务器均可访问
port 6379          #默认端口
requirepass 123456 #主节点的密码
masterauth 123456  #从节点连接主节点时需要配置的密码
  1. 在/home/redis 目录下新增create_redis_master.sh脚本,用于创建redis容器,内容如下:
bash 复制代码
#create_redis_master.sh文件
docker run -d --restart=always --name redis-master \
-p 6379:6379 --privileged=true \
-v /home/redis/master.conf:/redis.conf \
-v /home/redis/data:/data \
redis:6.0.8 redis-server /redis.conf
  1. 创建数据目录并执行 create_redis_master.sh 创建脚本
bash 复制代码
#创建主节点的数据存储目录
mkdir -p /home/redis/data
#执行创建脚本
sh create_redis_master.sh
  1. 验证
bash 复制代码
#查看容器状态
docker ps

执行上述命令,若出现下图所示内容表示启动成功,即 STATUS的值是UP xxx

**四、从节点配置(102/103)**‌

说明:这里以102 节点为例,103节点所需操作与102节点完全一样,这里不再赘述

  1. 在/home/redis 目录下新增slave.conf配置文件,且内容如下:
bash 复制代码
#slave.conf文件
bind 0.0.0.0       #设置所有服务器均可访问
port 6379          #默认端口
requirepass 123456 #当前从节点的密码
masterauth 123456  #当前从节点连接主节点时需要配置的密码
replicaof 192.168.100.101 6379 #重要,必须配置该项,设置从哪个节点拷贝数据,这里是master节点
replica-read-only yes #重要,设置为只读,即102/103两个从节点只能读取数据,不能写入数据,只能从master节点写入数据
  1. 在/home/redis 目录下新增create_redis_slave.sh脚本,用于创建redis容器,内容如下:
bash 复制代码
#create_redis_slave.sh文件
docker run -d --restart=always --name redis-slave \
-p 6379:6379 --privileged=true \
-v /home/redis/slave.conf:/redis.conf \
-v /home/redis/data:/data \
redis:6.0.8 redis-server /redis.conf
  1. 创建数据目录并执行 create_redis_slave.sh 创建脚本
bash 复制代码
#创建从节点的数据存储目录
mkdir -p /home/redis/data
#执行创建脚本
sh create_redis_slave.sh
  1. 验证
bash 复制代码
#查看容器状态
docker ps

(1)执行上述命令,若出现下图所示内容表示启动成功,即 STATUS的值是UP xxx

(2)进入从节点容器中,并执行查看redis的复制策略

bash 复制代码
#进入从节点的容器中
docker exec -it redis-slave /bin/bash

#查看从节点和主节点的复制策略
redis-cli -a 123456 info replication

出现如下信息,表示从节点搭建完成:

说明:在从节点执行 redis-cli info replication,查看 role:slave 和 master_link_status:up,则表示从节点已经可以正常从主节点同步数据了

五、验证整个主从模式状态

在101主节点的容器中执行info命令,查看集群状态

bash 复制代码
#在主节点101上执行如下命令,进入容器内部
docker exec -it redis-master /bin/bash
#查看主节点的主从状态
redis-cli -a 123456 info replication

出现如下信息,表示集群搭建成功:

到这里,redis的一主两从模式就搭建完成了,喜欢的小伙伴留下个赞再走吧~~

相关推荐
李纲明几秒前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
志栋智能8 小时前
运维超自动化的版本控制与回滚机制
运维·自动化
中云DDoS CC防护蔡蔡8 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
ClickHouseDB8 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906948 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
欧米欧9 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery9 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全
todoitbo9 小时前
群晖NAS部署JmalCloud:Docker安装、文件管理、博客与公网访问完整教程
运维·docker·容器
时间售卖铺9 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生