当前位置: 首页 > backend >正文

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

一、环境及版本说明 

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

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

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

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

环境及版本
操作系统IP操作系统版本docker版本redis版本
Linux192.168.100.101CentOS7.6(1810)18.09.96.0.8
Linux192.168.100.102CentOS7.6(1810)18.09.96.0.8
Linux192.168.100.103CentOS7.6(1810)18.09.96.0.8

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

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

优点‌:

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

缺点‌:

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

适用场景‌:

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

‌三、主节点配置(101)

1. 在/home/redis 目录下新增master.conf配置文件,且内容如下:
#master.conf文件
bind 0.0.0.0       #设置所有服务器均可访问
port 6379          #默认端口
requirepass 123456 #主节点的密码
masterauth 123456  #从节点连接主节点时需要配置的密码

2. 在/home/redis 目录下新增create_redis_master.sh脚本,用于创建redis容器,内容如下:

#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

 3. 创建数据目录并执行 create_redis_master.sh 创建脚本

#创建主节点的数据存储目录
mkdir -p /home/redis/data
#执行创建脚本
sh create_redis_master.sh

4. 验证

#查看容器状态
docker ps

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

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

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

1. 在/home/redis 目录下新增slave.conf配置文件,且内容如下:

#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节点写入数据

2. 在/home/redis 目录下新增create_redis_slave.sh脚本,用于创建redis容器,内容如下:

#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

3. 创建数据目录并执行 create_redis_slave.sh 创建脚本 

#创建从节点的数据存储目录
mkdir -p /home/redis/data
#执行创建脚本
sh create_redis_slave.sh

4. 验证

#查看容器状态
docker ps

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

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

#进入从节点的容器中
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命令,查看集群状态

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

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

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

http://www.xdnf.cn/news/13039.html

相关文章:

  • ChatGPT 辅助 PyTorch 开发:从数据预处理到 CNN 图像识别的全流程优化
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十三)
  • 【AI】从0开始玩转混元3D⼤模型,如何让一张静态实物图片一键转为3D实物图,大模型都表示服了,超级简单易上手,快来试试!
  • Infrastructure-Based Calibration of a Multi-Camera Rig
  • 初学 pytest 记录
  • 从物理机到云原生:全面解析计算虚拟化技术的演进与应用
  • OpenCV——图像基本操作(一)
  • ABB 605系列
  • ABP vNext + HBase:打造超高吞吐分布式列式数据库
  • C++实现分布式网络通信框架MPRPC(1)--预备知识
  • 云原生安全实战:API网关Envoy的鉴权与限流详解
  • AD学习(3)
  • 【多智能体】基于LLM自进化多学科团队医疗咨询多智能体框架
  • Redis专题-实战篇一-基于Session和Redis实现登录业务
  • GC1808高性能24位立体声音频ADC芯片解析
  • 分享一个自己封装的自用浏览器自动化工具(含浏览器自动下载,网页操作,文件上传下载,网络监听,翻页,Cookies等功能)
  • 初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)
  • 监控升级:可视化如何让每一个细节 “说话”
  • validate校验的使用
  • 运动控制--BLDC电机
  • 【Linux指南】用户与系统基础操作
  • C++之list的自我实现
  • 曼昆《经济学原理》第九版 第十二章税收制度的设计
  • NY158NY159美光固态闪存NY160NY161
  • 权限一览表
  • 曼昆《经济学原理》第九版 第八章税收的成本
  • 深入探索CDC:实时数据同步利器
  • C++ map基础概念、map对象创建、map赋值操作、map大小操作、map数据插入、map数据删除、map数据修改、map数据统计
  • zotero及其插件安装