docker搭建redis集群、哨兵

news2024/11/17 2:47:15

集群搭建

本机IP 192.168.1.149
分别采用映射 192.168.1.149 的6379 6380 6381 三个端口模拟三台服务器。搭建三主无从的集群
首先可以在本机上创建三份redis.conf配置文件,分别命名为redis1.conf, redis2.conf, redis3.conf ,我这里放在/opt/redis/conf/中

redis*.conf

# redis进程的端口号
port 6379
# 绑定的主机地址
bind 0.0.0.0
#开启集群
cluster-enabled yes
# 当为集群模式 将无法配置多数据库,默认为0,这里可以不配置
# databases 0
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
protected-mode no
# redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)。
daemonize no
#第一台
 docker run --name redis1 -p 6379:6379 -p 16379:16379 --volume=/opt/redis/redis1.conf:/etc/redis.conf  -d redis:7 redis-server /etc/redis.conf
#第二台
 docker run --name redis2 -p 6380:6379 -p 16380:16379 --volume=/opt/redis/redis2.conf:/etc/redis.conf  -d redis:7 redis-server /etc/redis.conf
#第三台
 docker run --name redis3 -p 6381:6379 -p 16381:16379 --volume=/opt/redis/redis3.conf:/etc/redis.conf  -d redis:7 redis-server /etc/redis.conf

进入其中一个容器,下面命令创建一个集群

docker exec -it redis1 bash
#执行下列命令,分配HASH槽
#--cluster-replicas 0 表示没有从节点,如果有每主配一台从节点,则需要6台节点。
redis-cli --cluster create 192.168.1.149:6379  192.168.1.149:6380 192.168.1.149:6381 --cluster-replicas 0

在这里插入图片描述
正常情况等待其它节点建立连接。。
其它失败可能如下

必须三个及以上节点,否则提示报错
ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master node

如果配置3主3从 --cluster-replicas 1,节点不够则报错
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 3 nodes and 1 replicas per node.
*** At least 6 nodes are required.
在这里插入图片描述

回到其它节点,与刚才的节点建立连接

#进入容器2
docker exec -it redis2 bash
#进入客户端
redis-cli
#连接到之前的节点
CLUSTER MEET 192.168.1.149 6379
CLUSTER MEET 192.168.1.149 6381

exit

#同样进入容器3
docker exec -it redis3 bash
#进入客户端
redis-cli
#连接到之前的节点
CLUSTER MEET 192.168.1.149 6379
CLUSTER MEET 192.168.1.149 6380

exit

当各节点都分配完成,测试一下集群效果,进入任何一个容器节点

docker exec -it redis2 bash
#进入客户端操作 ,设置多个值 ,OK,成功
redis-cli
#set a 111
#set b 111
#set c 111
#set d 111

极端

提示 Warning: 1 node(s) may be unreachable
The port 16379 of node 192.168.1.149 may be unreachable from:
192.168.1.149:6381
Cluster bus ports must be reachable by every node.
Remember that cluster bus ports are different from standard instance ports.
容器需要开放16379端口号,即6379+10000

某些情况下,还需重新分配hash槽,在节点中重新分配一下,执行下列命令,会提示节点未覆盖所有槽位,是否修复,输入yes
[ERR] Not all 16384 slots are covered by nodes.

./redis-cli --cluster fix 192.168.1.149:6379

./redis-cli --cluster fix 192.168.1.149:6380  #类似
./redis-cli --cluster fix 192.168.1.149:6381  #类似

在这里插入图片描述

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

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

相关文章

MyBatis学习笔记(九) —— 自定义映射resultMap

9、自定义映射resultMap 9.1、resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致,则可以通过resultMap设置自定义映射 resultType 是一个具体的类型。 resultMap 是resultMap的标签。 id 是处理主键和属性的映射关系; result 是处…

FirePower X2 14.0.1 for RAD Studio Alexandria

介绍 FirePower X2 FirePower X2 集成了 RAD Studio 11.0 Alexandria 中的新功能,并预览了我们的新特色组件 TwwDataGrouper。 FirePower X2 还允许您为 Apple 的新 M1 芯片构建应用程序,这样您就可以进一步利用 M1 芯片来提高本机应用程序的性能&#x…

set和map的基本使用

目录 关联式容器 要点分析 键值对 pair介绍 set 模板参数列表: set的构造: 常用接口 操作 multiset map map的构造 插入 make_pair map的迭代器 operator[] multimap multimap中为什么没有重载operator[] 关联式容器 关联式容器也是用…

(五十六)针对主键之外的字段建立的二级索引,又是如何运作的?

上一次我们已经给大家彻底讲透了聚簇索引这个东西,其实聚簇索引就是innodb存储引擎默认给我们创建的一套基于主键的索引结构,而且我们表里的数据就是直接放在聚簇索引里的,作为叶子节点的数据页,如下图。 而且我们现在也对基于主键…

日志框架以及如何使用LogBack记录程序

使用日志框架可以记录一个程序运行的过程和详情,同时便捷地存储到文件里面,并且性能和灵活性都比较好。日志的体系结构包括两类日志规范接口:Commons Logging,简称:JCL;Simple Logging Facade for Java&…

JavaScript高级程序设计读书分享之8章——8.2创建对象

JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 创建Object的实例 let person new Object(); person.name "Nicholas"; person.age 29; person.job "Software Engineer"; person.sayName function() { console.log(this…

增长乏力?创造产品和项目需求的6大方法【一杯咖啡谈项目】

我这里所说的创造需求,类似于PMI在《需求管理实践指南》中所写的专业术语“需要评估”(needs assessment),这个需要评估,没有写进PMI的《项目管理知识体系指南(PMBOK指南)》(以下称为…

fork()出来一个进程,这个进程的父进程是从哪来的?

基本概念fork() creates a new process by duplicating the calling process. The new process is referred to as the child process. The calling process is referred to as the parent process.fork()是一个系统调用,不是一个函数。详细信息可以,man…

day(22) Echarts和nacos

day(22) Echarts和nacos一、Echarts和nacos1.1 数据展示1.2 查询日期之间的数据二、配置中心2.1 配置中心spring cloud config2.1.1 缺点2.1.2 其他配置中心2.2 nacos2.2.1 pom2.2.2 配置文件2.2.3 Data id是微服务名称2.2.4 优先级2.2.5 动态刷新2.2.6 namespace2.2.7 多配置文…

Symbiosis Nest 共生巢token跨链兑换协议

参考文献: Getting Started with Symbiosis - Symbiosis Documentation Relayers Network | Symbiosis - Symbiosis Documentation Symbiosis V1 vs. V2 - Symbiosis Documentation Symbiosis protocal 基于稳定币的跨链兑换协议. Symbiosis protocol 组成结构…

pyechart绘制多图(三图及以上)的overlap叠加

pyechart github页面:https://github.com/pyecharts/pyecharts 首先要明确多图叠加到一个图的规则,即多个图只能有一个公共的轴: 比如,横坐标含义相同(如时间维度)或者,纵坐标取值含义相同 文…

Web3中文|把Web3装进口袋,Solana手机Saga有何魔力?

2月23日,Solana Web3手机Saga发布新的消息,将推出NFT铸造应用程序Minty Fresh。在Minty Fresh,用户仅需轻点并完成拍摄,就可以直接在手机中进行NFT铸造,并在几秒钟内将其转换为链上NFT,NFT还可以发布在 Ins…

STM32学习笔记-SPI

文章目录硬件连接协议层STM32-SPISTM32 SPI框架图SPI初始化结构体SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求…

NCRE计算机等级考试Python真题(十一)

第十一套试题1、以下选项对于import保留字描述错误的是:A.import可以用于导入函数库或者库中的函数B.可以使用from jieba import lcut 引入 jieba库C.使用import jieba as jb,引入函数库jieba,取别名jbD.使用import jieba 引入jieba库正确答案…

明明硬件比软件难,但为什么硬件工程师待遇还不如软件?

前言 大家好,最近在知乎上看到一个很有意思的问题: 硬件明明比软件更难,国内的硬件技术也不如软件,为什么硬件工程师待遇还不如软件? 下面分享几位网友的回答,有一定的参考价值,欢迎大家留言讨论…

Dell服务器组Raid + 重装Ubuntu20.0.4

文章目录1. 组建Raid2. 从U盘启动3. 系统安装4. 硬盘分区查看5.后续步骤:1. 组建Raid 1.1. 开机后按CtrlR进入Raid管理界面; 1.2. 选中现有群组后按F2弹出菜单,选择删除现有群组; 1.3. 删除后会列出所有磁盘,仍选…

DSP_TMS320F28377D_ePWM学习笔记

前言 本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记。主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配置,关于ADC的学习笔记,请参考DSP_TMS320F28377D_AD…

靶机漏洞那些事儿,这场直播算是讲明白了

CSDN直播间: 小白如何从靶场过渡到实战 ——「业务安全大讲堂第第二季第2期」https://live.csdn.net/room/dingxiangtech/xldogSXD 一名合格的网安工程师,不仅要懂得防漏洞,更要学会找漏洞。 上期直播我们为大家讲解了红队打点与情报收集策…

[busybox] busybox生成一个最精简rootfs(上)

这篇文章是承接着[rootfs]用busybox做一个rootfs(根文件系统)来的,再回看这篇我很久之前写的文章的时候,有一个问题出现在我的脑海中,创建了这个文件那个文件,但确实是每个文件都是必需的吗? 这篇文章我们就来讨论下这…

Graph Neural Network(GNN)图神经网络

Graph Neural Network(GNN)图神经网络,是一种旨在对图结构数据就行操作的深度学习算法。它可以很自然地表示现实世界中的很多问题,包括社交网络,分子结构和交通网络等。GNN旨在处理此类图结构数据,并对图中的节点和边进行预测或执…