docker学习(十、搭建redis集群,三主三从)

文章目录

  • 一、docker创建6个redis容器
    • 创建6个redis容器
    • 回顾各个属性含义
  • 二、划分主从,3主3从
    • 划分主从
    • 查看状态
    • 查看节点信息

基础理论在这里有详细描述:
docker学习(九、分布式存储亿级数据知识)
后续redis集群操作:
docker学习(十一、Redis集群存储数据方式)

一、docker创建6个redis容器

创建6个redis容器

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share-node-1:/data redis --cluster-enabled yes --appendonly yes --port 6381
docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share-node-2:/data redis --cluster-enabled yes --appendonly yes --port 6382
docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share-node-3:/data redis --cluster-enabled yes --appendonly yes --port 6383
docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share-node-4:/data redis --cluster-enabled yes --appendonly yes --port 6384
docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share-node-5:/data redis --cluster-enabled yes --appendonly yes --port 6385
docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share-node-6:/data redis --cluster-enabled yes --appendonly yes --port 6386

在这里插入图片描述
在这里插入图片描述

回顾各个属性含义

--name redis-node-1 容器名字为redis-node-1
--net host 使用宿主机的IP和端口号,默认
--priviged=true 获取宿主机root用户全新啊
-v /data/redis/share/redis-node-6:/data 容器卷,宿主机地址:docker内部地址
redis redis镜像,如果版本号不是latest,需要加上,例如redis:6.0.8
--cluster-enabled yes 开启redis集群
--appendonly yes 开启持久化
--port 6381 redis端口号

二、划分主从,3主3从

划分主从

# 进入docker容器
docker exec -it redis-node-1 /bin/bash
# 进行划分主从,注意命令是自己的真实IP地址,可以宿主机ifconfig查看
redis-cli --cluster create 172.27.64.169:6381 172.27.64.169:6382 172.27.64.169:6383 172.27.64.169:6384 172.27.64.169:6385 172.27.64.169:6386 --cluster-replicas 1

–cluster-replicas 1 表示为每一个master创建1个slave节点,6个节点,也就是3个master3个slave
在这里插入图片描述
在这里插入图片描述
可以看到每个节点存储的hash槽与这个匹配上了,redis一共16384个槽。

接下来输入yes,可以看到三个Master,三个Slave

在这里插入图片描述

查看状态

在容器中执行命令查看状态

# 进入redis
redis-cli -p 6381
# 查看集群状态
cluster info

在这里插入图片描述

查看节点信息

# 查看集群节点信息
cluster nodes

在这里插入图片描述
1、2、3是master,4、5、6是slave。而他们的对应关系每次是随机分配的,可以看到我的主从关系是:
master1 – > slave6
master2 – > slave4
master3 – > slave5
在这里插入图片描述
到这里集群的简单搭建就完成了~
到这里集群的简单搭建就完成了~
到这里集群的简单搭建就完成了~

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

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

相关文章

watch监听的使用

watch是什么? 在 Vue 3 中,watch 函数被重新设计为一个独立的 API,用于观察数据变化并执行相应的操作。 watch 函数接受两个参数: 第一个参数可以是一个函数或数组。如果是函数,则返回要监听的数据,当数…

聪明高效能力广,AGI如何赋能内容管理?

文 | 智能相对论 作者 | 叶远风 毫无疑问,现在的大模型在技术比拼之外,如何通过产品化的方式走入到实际业务,是各厂商的着力点。 而一些一贯与数字化场景紧密融合的服务厂商,在大模型浪潮一开始就已经走在落地一线。 大数据基…

【C++高阶(八)】单例模式特殊类的设计

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 单例模式 1. 前言2. 设计一个不能被拷贝/继承的…

SVN搭建指导

环境 centos 7.9 SVN安装方式一:yum 1.1 http服务 至今还没有搞定网页版,网页版需要搭建apache http服务。遇到如下问题: centos - svn: Could not open the requested SVN filesystem - Stack Overflow 在试了加777权限,加a…

c语言:指针作为参数传递

探究实参与形参它们相互独立 由于主调函数的变量a,b与被调函数的形参x,y它们相互独立。函数 swap 可以修改变量x,y,但是却无法影响到主调函数中的a,b。 现在利用取地址运算符,分别打印它们的首地址&#x…

生物识别规划人脸识别方案的概述

方案概述 人脸识别方案采用高性能AI芯片,支持RGB和IR摄像头, 支持LCD显示屏。方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息, 同时利用可见光和红外 光谱信…

Axure RP 8 for Mac/win中文版:打造完美交互式原型设计体验

Axure RP 8,一款引领潮流的交互式原型设计工具,为设计师提供了无限的可能性,让他们能够创造出逼真的原型,从而更好地展示和测试他们的设计。 Axure RP 8拥有丰富的功能和工具,让设计师可以轻松地创建出复杂的交互式原…

GSCoolink GSV1201E Type C/DP1.2转HDM1.4

DisplayPort 1.2 to HDMI 1.4 Converter with Embedded MCU 功能特征 1、GSV1201E是一款高性能、低功耗、USB Type-C Alternate Mode DisplayPort 1.2 to HDMI 1.4转换器。 2、显示接口接收器支持21.6Gbps(HBR2,4-lane)。 3、HDMI发射器支持9Gbps(TMDS3G3Lane)。…

Swagger2接口测试文档

目录 一、Swagger简介 1.1 Swagger是什么? 1.2 为什么要用Swagger 1.3 Swagger注解 二、Spring集成Swagger 三、测试环境配置 一、Swagger简介 1.1 Swagger是什么? Swagger是一款RESTFUL接口的文档在线自动生成功能测试功能软件。Swagger是一个规…

Linux之进程(五)(进程控制)

目录 一、进程创建 1、fork函数创建进程 2、fork函数的返回值 3、fork常规用法 4、fork调用失败的原因 二、进程终止 1、进程终止的方式 2、进程退出码 3、进程的退出方法 三、进程等待 1、进程等待的必要性 2、wait函数 3、waitpid函数 四、进程程序替换 1、概念…

Android studio中导入opencv库

具体opencv库的导入流程参考链接:Android Studio开发之路 (五)导入OpenCV以及报错解决 一、出现的错误:NullPointerException: Cannot invoke “java.io.File.toPath()” because “this.mySdkLocation” is null 解决办法&#…

java获取当前线程的上下文类加载器(context ClassLoader)

当前线程的上下文类加载器初始设置等于加载该应用的类加载器。 代码示例: package com.thb;public class Demo4 {public static void main(String[] args) {System.out.println(Thread.currentThread().getContextClassLoader());} }运行输出:

地质灾害监测预警解决方案

目录 1.前言 2.滑坡监测站建设方案 2.1建站方案 2.2监测指标体系 2.3监测设备配置 3.地面沉降监测建设方案 3.1建设方案 3.2监测指标体系 3.3监测设备配置 4.泥石流监测站建设方案 4.1建设方案 4.2监测指标体系 4.3监测设备配置 5.岩溶塌陷监测站方案 5.1建站方案…

深入理解网络 I/O:FileOutputStream、BufferFileOutputStream、ByteBuffer

🔭 嗨,您好 👋 我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏&…

java8实战 lambda表达式、函数式接口、方法引用双冒号(中)

前言 书接上文,上一篇博客讲到了lambda表达式的应用场景,本篇接着将java8实战第三章的总结。建议读者先看第一篇博客 其他函数式接口例子 上一篇有讲到Java API也有其他的函数式接口,书里也举了2个例子,一个是java.util.functi…

java并发-ConcurrentHashMap 在Java7 和 8 的区别

文章目录 1.Java 7 版本的 ConcurrentHashMap2.Java 8 版本的 ConcurrentHashMap3.分析 Java 8 版本的 ConcurrentHashMap 的重要源码3.1.Node 节点3.2.put 方法源码分析3.3.get 方法源码分析 4.对比 Java7 和 Java8 的异同和优缺点4.1.并发度4.2.保证并发安全的原理4.3.遇到 H…

Jmeter实现CSV数据批量导入

CSV:逗号分隔值,是一种简洁且常见的数据存储格式。 1、参数化: 在Jmeter中,可以通过“用户自定义的变量”来实现参数化使操作方便,使用语法位:${参数名},如下图: 而CSV也同理&…

本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况,异地办公或者不在公司,想找…

java注意项--更新中

前言: 1.大小写规定 1.1.类名和接口名:每个单词首字母大写。如GoodStudent; 是一个单词的时候首字母大写。如Student; 1.2.变量和方法名:第一个首字母小写,后序首字母大写。如firstName; 是一…

vue的语法模板与数据绑定的说明

vue的两大模板语法: 1.插值语法 2.指定语法 插值语法:{{}} 功能:用于解析标签体的内容 写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性 指定语法: 功能:用于解析标签(包括:标签属性、标…