redis 三主三从高可用集群docker swarm

由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。
官网介绍地址
redis集群(cluster)笔记

跨主机部署redis

安装文件下载链接(或者按照下面的步骤自己创建)

链接:https://pan.baidu.com/s/1tLgLYWkawTvU17yvU1M_5A?pwd=xp9p

主机IP
node1192.168.56.100
node2192.168.56.101
node3192.168.56.102

在这里插入图片描述
在node1 开放防火墙:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.101" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.102" accept"
firewall-cmd --reload
firewall-cmd --list-all

在node2 开放防火墙:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.100" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.102" accept"firewall-cmd --reload
firewall-cmd --list-all

在node3 开放防火墙:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.101" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.56.100" accept"firewall-cmd --reload
firewall-cmd --list-all

1. 在3台主机上配置swarm

  • 创建 /home/redis
mkdir -p /home/redis && cd /home/redis
  • 3台机器分别将redis.zip拷贝到 /home/redis

  • 在node1上执行:

docker swarm init --advertise-addr 192.168.56.100
docker swarm join-token manager

返回类似以下内容:

docker swarm join --token SWMTKN-1-614xi9dvksycykobgifxb4pgopc1wwgczwqct5wqkq8zao6tmx-0ds4jj3ozclrr2wukcaoakxso 192.168.56.100:2377
  • 在node2、node3上执行上面的返回结果:
docker swarm join --token SWMTKN-1-2c2xopn2rld8oltcof24sue370681ijhbo3bwcqarjlhq9lkea-2g53o5qn2anre4j9puv4hecrn 192.168.0.101:2377

2. 创建swarm网络

在node1上执行以下命令:

docker network create --subnet=10.0.1.0/24 -d overlay --attachable pxc_swarm

3.文件目录如下

├─node1
│  ├─conf
│  ├─redis1
│  │  └─data
│  └─redis2
│      └─data
├─node2
│  ├─conf
│  ├─redis1
│  │  └─data
│  └─redis2
│      └─data
└─node3├─conf├─redis1│  └─data└─redis2└─data

4.文件介绍

4.1 所有conf文件夹里面有一个redis.conf
port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
4.2 所有node下面的目录有一个docker-compose.yml
node1 docker-compose.yml
version: '3'networks:pxc_swarm:external: true services:redis1:image: redis:6.0-alpinehostname: redis1container_name: redis1volumes:- "/home/redis/redis1/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.10redis2:image: redis:6.0-alpinehostname: redis2container_name: redis2volumes:- "/home/redis/redis2/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.11
node2 docker-compose.yml
version: '3'networks:pxc_swarm:external: true services:redis1:image: redis:6.0-alpinehostname: redis1container_name: redis1volumes:- "/home/redis/redis1/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.20redis2:image: redis:6.0-alpinehostname: redis2container_name: redis2volumes:- "/home/redis/redis2/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.21
node3 docker-compose.yml
version: '3'networks:pxc_swarm:external: true services:redis1:image: redis:6.0-alpinehostname: redis1container_name: redis1volumes:- "/home/redis/redis1/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.30redis2:image: redis:6.0-alpinehostname: redis2container_name: redis2volumes:- "/home/redis/redis2/data:/data"- "/home/redis/conf/redis.conf:/etc/redis.conf"command: redis-server /etc/redis.conf command: redis-server /etc/redis.conf restart: alwaysprivileged: truenetworks:pxc_swarm:ipv4_address: 10.0.1.31
4.3 其余的是目录

5.node1执行

rm -rf /home/redis/node2
rm -rf /home/redis/node3
cd /home/redis/node1 && docker-compose up -d

6.node2执行

rm -rf /home/redis/node1
rm -rf /home/redis/node3
docker run --rm redis:6.0-alpine redis-cli -v
cd /home/redis/node2 && docker-compose up -d

7.node3执行

rm -rf /home/redis/node1
rm -rf /home/redis/node2
docker run --rm redis:6.0-alpine redis-cli -v
cd /home/redis/node3 && docker-compose up -d

8.加入集群

docker exec -it redis1 /bin/sh
redis-cli --cluster create 10.0.1.10:6379 10.0.1.20:6379 10.0.1.11:6379 10.0.1.30:6379 10.0.1.21:6379 10.0.1.31:6379 --cluster-replicas 1

在这里插入图片描述

M: 1ff0c227fff72b893e8c7514a7d8f49183f0a397 10.0.1.10:6379slots:[0-5460] (5461 slots) master
M: 5242fb87c0c7f0179d32727b6043cc546ec1a731 10.0.1.20:6379slots:[5461-10922] (5462 slots) master
M: 7daa8da3450adc53ac88eda3a3c1a8f2c1976c02 10.0.1.11:6379slots:[10923-16383] (5461 slots) master
S: 962e2b4516cb7186f407d6ffc3a91b62603e0a09 10.0.1.30:6379replicates 7daa8da3450adc53ac88eda3a3c1a8f2c1976c02
S: 04fff0c1488896bef11aa508edbbf5ac6c29815b 10.0.1.21:6379replicates 1ff0c227fff72b893e8c7514a7d8f49183f0a397
S: 2e43a4d7b46b20e60220b4f495d8370b07c717bd 10.0.1.31:6379replicates 5242fb87c0c7f0179d32727b6043cc546ec1a73110  21
20  31
11  30

所有主从不允许在同一台机器上

7.常用命令

# 查看节点
cluster nodes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/214089.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据java类名找出当前是哪个Excel中的sheet

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 …

使用粗糙贴图制作粗纹皮革手提包3D模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…

react新旧生命周期钩子

以下的内容根据尚硅谷整理。 旧生命钩子 辅助理解&#xff1a; 红色框&#xff1a;挂载时生命钩子蓝色框&#xff1a;更新时生命钩子绿色框&#xff1a;卸载时生命钩子 挂载时 如图所示&#xff0c;我们可以看到&#xff0c;在组件第一次挂载时会经历&#xff1a; 构造器&a…

学习记录---kubernetes动态卷使用---storageClass及驱动安装(nfs驱动)

一、简介 kubernetes中&#xff0c;在存储层面&#xff0c;我们常用到的两个资源是pv和pvc&#xff0c;其中pv是实际创建出来的一致性卷&#xff0c;我们可以通过pv将容器中的数据进行持久化保存&#xff0c;而pvc则可以理解为pod使用pv的中间控制器&#xff0c;通过pvc将pv绑…

自然语言处理第2天:自然语言处理词语编码

​ ☁️主页 Nowl &#x1f525;专栏 《自然语言处理》 &#x1f4d1;君子坐而论道&#xff0c;少年起而行之 ​​ 文章目录 一、自然语言处理介绍二、常见的词编码方式1.one-hot介绍缺点 2.词嵌入介绍说明 三、代码演示四、结语 一、自然语言处理介绍 自然语言处理&#xf…

vue2-使用vue-i18n搭建多语言切换环境

安装 注意&#xff1a;vue2.0要用8版本的&#xff0c;使用9版本的会报错 npm install vue-i18n8.27.0 --save 创建相关的语言包文件 在src目录下&#xff0c;新建i18n文件夹 在新文件夹i18n中新建langs文件夹&#xff0c;里边放语言文本文件.js zh.js&#xff1a;存…

C#网络应用程序(Web页面浏览器、局域网聊天程序)

目录 一、创建Web页面浏览器 1.示例源码 2.生成效果 二、局域网聊天程序 1.类 2.服务器端 3.客户端 一、创建Web页面浏览器 TextBox 控件用来输入要浏览的网页地址&#xff0c;Button控件用来执行浏览网页操作&#xff0c; WebBrowser控件用来显示要浏览的网页。这个控…

本项目基于Spring boot的AMQP模块,整合流行的开源消息队列中间件rabbitMQ,实现一个向rabbitMQ

在业务逻辑的异步处理&#xff0c;系统解耦&#xff0c;分布式通信以及控制高并发的场景下&#xff0c;消息队列有着广泛的应用。本项目基于Spring的AMQP模块&#xff0c;整合流行的开源消息队列中间件rabbitMQ,实现一个向rabbitMQ添加和读取消息的功能。并比较了两种模式&…

Linux-centos上如何配置管理NFS服务器?

Linux/centos上如何配置管理NFS服务器&#xff1f; 1 NFS基础了解 NFS&#xff08;Network File System&#xff09;即文件操作系统&#xff1b;NFS允许网络中不同计算机相互之间共享资源。 1.1 NFS概述 1980年由SUN发展出来的在UNIX&Linux系统间实现文件共享的一种方法…

键盘打字盲打练习系列之反复练习——3

一.欢迎来到我的酒馆 盲打&#xff0c;反复练习&#xff01; 目录 一.欢迎来到我的酒馆二.数字&符号键位指法1.数字键位指法2.符号键位指法 三.反复练习 二.数字&符号键位指法 前面的一个章节重点介绍了主键盘区字母键位的指法&#xff1a;基准键位指法、" QWERTY…

计算机基础知识65

cookie和session的使用 # 概念&#xff1a;cookie 是客户端浏览器上的键值对 # 目的&#xff1a;为了做会话保持 # 来源&#xff1a;服务端写入的&#xff0c;服务端再返回的响应头中写入&#xff0c;浏览器会自动取出来 存起来是以key value 形式&#xff0c;有过期时间、path…

【11】Qt Designer

目录 VSCode添加外部工具 QtDesigner PyUIC PyRCC 加载UI文件模板代码 QMainWindow QWidget 常用知识点 1. 修改标题图标 2. 图片资源管理 3. 图片按钮 4. 加载对话框 5. 动态加载Widget 6. 修改主题 其他注意事项 事件被多次触发 PyQt5提供了一个可视化图形工…

02 CSS基础入门

文章目录 一、CSS介绍1. 简介2. 相关网站3. HTML引入方式 二、选择器1. 标签选择器2. 类选择器3. ID选择器4. 群组选择器 四、样式1. 字体样式2. 文本样式3. 边框样式4. 表格样式 五、模型和布局1. 盒子模型2. 网页布局 一、CSS介绍 1. 简介 CSS主要用于控制网页的外观&#…

联合基于信息论的安全和隐蔽通信的框架

这个标题很帅 abstractintroductionsystem modelPROPOSED JOINT OPTIMIZATION OF ITS AND COVERT TRANSMISSION RATE信息论安全 (ITS)隐蔽通信需要(CC)Joint Information-Theoretic Secrecy and Covert Communication in the Presence of an Untrusted User and Warden 202…

章鱼网络进展月报 | 2023.11.1-11.30

章鱼网络大事摘要 1、2023年12月&#xff0c;Octopus 2.0 将会正式启动。 2、隐私协议 Secret Network 宣布使用 Octopus Network 构建的 NEAR-IBC 连接 NEAR 生态。 3、Louis 受邀作为嘉宾&#xff0c;在 NEARCON2023 的多链网络主题沙龙中发言&#xff1a;我们依然处于区…

2022年第十一届数学建模国际赛小美赛C题人类活动分类解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 C题 人类活动分类 原题再现&#xff1a; 人类行为理解的一个重要方面是对日常活动的识别和监控。可穿戴式活动识别系统可以改善许多关键领域的生活质量&#xff0c;如动态监测、家庭康复和跌倒检测。基于惯性传感器的活动识别系统用于通过…

2.postman环境变量及接口关联

一、环境变量以及全局变量 操作流程 1.点击environment 2.点击environment右侧号&#xff0c;新增环境变量 3.在变量中输入变量名以及变量值 4.回到collection页面&#xff0c;修改变量环境 5.在collection中通过{{变量名}}调用变量 变量定义 环境变量&#xff1a;环境变量…

音视频之旅 - 基础知识

图像基础知识 像素 像素是图像的基本单元&#xff0c;一个个像素就组成了图像。你可以认为像素就是图像中的一个点。在下面这张图中&#xff0c;你可以看到一个个方块&#xff0c;这些方块就是像素 分辨率 图像&#xff08;或视频&#xff09;的分辨率是指图像的大小或尺寸。…

Linux系统---简易伙伴系统

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、题目要求 1.采用C语言实现 2.伙伴系统采用free_area[11]数组来组织。要求伙伴内存最小为一个页面&#xff0c;页面大小为4KB…

利用阿里云 DDoS、WAF、CDN 和云防火墙为在线业务赋能

在这篇博客中&#xff0c;我们将详细讨论使用阿里云 CDN 和安全产品保护您的在线业务所需的步骤。 方案描述 创新技术的快速发展为世界各地的在线业务带来了新的机遇。今天的人们不仅习惯了&#xff0c;而且依靠互联网来开展他们的日常生活&#xff0c;包括购物、玩游戏、看电…