Linux下部署Redis集群 - 一主二从三哨兵模式
三台服务器redis一主二从三哨兵模式搭建
最近使用到了redis集群部署,使用一主二从三哨兵集群部署redis,将自己部署的过程中的使用心得分享给大家,希望大家以后部署的过程减少一些坑。
服务器准备
3台服务器 ,确定主redis和从redis。
182.168.40.142 (master节点)
182.168.40.141 (slave1节点)
182.168.40.140 (slave2节点)
服务器分别需要开通6379、6380、6381和26379、26380、26381端口或者关闭防火墙
一、 部署redis(基础部署,主从部署先要完成基础部署,该部分操作需要在所有节点执行)
1.下载
wget http://download.redis.io/releases/redis-6.2.6.tar.gz
2. 解压
tar -zxvf redis-6.2.6.tar.gz
mv redis-6.2.6 /usr/local/
3.编译
进入目录命令 cd /usr/local/redis-6.2.6
编译命令 make
4. 安装
进入src命令 cd /usr/local/redis-6.2.6/src/
安装命令 make install
5. 重点:
5.1 新建 bin 和 etc 文件夹5.2 装载配置文件在etc进入目录命令 : cd /usr/local/redis-6.2.6/
创建etc文件夹: mkdir etc
创建bin文件夹: mkdir bin
创建logs文件夹: mkdir logs
5.3 在bin下装载如下文件复制文件命令 cp redis.conf /usr/local/redis-6.2.6/etc
将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server、redis-sentinel文件复制到 bin 文件夹
5.4 改下redis.conf配置cd src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis-6.2.6/bin/
修改后的配置如下
5.5 启动redis命令bind:0.0.0.0
protected-mode:no
daemonize:yes
requirepass:123456(密码自己设置)
logfile "/usr/local/redis-6.2.6/logs/redis-6379.log"
dbfilename dump-6379.rdb
切换到bin目录,使用下面命令启动redis
5.6 客户端关闭命令:cd /usr/local/redis-6.2.6/bin
./redis-server /usr/local/redis-6.2.6/etc/redis.conf
方式一:redis-cli -p 端口号shutdown
方式二:首先ps -ef | grep redis 获取进程号 然后kill -9 进程号
二、redis主从配置
2.1 主机redis配置文件
bind : 0.0.0.0 表示允许所有远程访问
port:端口号 (默认就好)
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6379.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6379.log”
dbfilename dump_6378.rdb
requirepass: redis的连接密码
masterauth: slave 服务连接 master 的密码(跟redis密码一致)
修改配置文件后需要重启redis
2.2 从redis配置文件
bind : 0.0.0.0 表示允许所有远程访问
port:6380
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6380.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6380.log”
dbfilename dump_6380.rdb
requirepass: redis的连接密码
replicaof: 主redis服务器ip 主redis端口(配置为master的从)
masterauth: slave 服务连接 master 的密码(跟redis密码一致)
修改配置文件后需要重启redis
==================================================
bind : 0.0.0.0 表示允许所有远程访问
port:6381
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
pidfile /var/run/redis_6381.pid
logfile “/usr/local/redis-6.2.6/logs/redis_6381.log”
dbfilename dump_6381.rdb
requirepass: redis的连接密码
replicaof: 主redis服务器ip 主redis端口(配置为master的从)
masterauth: slave 服务连接 master 的密码(跟redis密码一致)
修改配置文件后需要重启redis
2.3 主从测试
1.切换目录
cd /usr/local/redis-6.2.6/bin/
2.连接客户端
./redis-cli -h ip地址 -p端口号
3.密码校验
auth redis密码
4.主从配置信息
info replication
有如下信息代表主从是ok的

Role:代表当前服务器的角色 master代表主redis,slave代表从redis
connected_slaves 后面的数字代表从redis的数量
slave:代表从redis的地址,端口等信息
在 master 上添加数据,看 slave 上是否会同步数据
三、哨兵配置
3.1 主机sentinel配置文件
port 26379
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26379.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26379.log"
3.2 从机sentinel配置文件
port 26380
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26380.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26380.log"
==================================================
port 26381
daemonize yes(后台启动)
sentinel monitor mymaster 192.169.40.142 6379 2(主redis的ip 主redis的port 从节点个数)
sentinel auth-pass mymaster 123456(redis的密码)
pidfile "/var/run/redis-sentinel_26381.pid"
logfile "/usr/local/redis-6.2.6/logs/sentinel_26381.log"
3.3 验证哨兵模式
1.分别在三台机器上,进入 redis 解压目录,依次执行2. 连接任意 sentinel 节点cd /usr/local/bin/
./redis-sentinel /usr/local/etc/sentinel.conf
3. redis 命令行上,执行 info sentinel 命令cd /usr/local/redis-6.2.6/bin
./redis-cli -h ip -p port
如: ./redis-cli -h 192.168.40.142 -p 26379
验证 sentinel 状态为ok就是正确的,有如下类似信息,则配置完成

4. 测试哨兵模式
停止主服务器6379,测试主服务器的重新选举,会另外选一个从服务器作为主服务器
重新启动6379,不会把6379切换成主服务器,而是作为了从服务器
相关文章:
Linux下部署Redis集群 - 一主二从三哨兵模式
三台服务器redis一主二从三哨兵模式搭建 最近使用到了redis集群部署,使用一主二从三哨兵集群部署redis,将自己部署的过程中的使用心得分享给大家,希望大家以后部署的过程减少一些坑。 服务器准备 3台服务器 ,确定主redis和从red…...
实战设计模式之建造者模式
概述 在实际项目中,我们有时会遇到需要创建复杂对象的情况。这些对象可能包含多个组件或属性,而且每个组件都有自己的配置选项。如果直接使用构造函数或前面介绍的工厂方法来创建这样的对象,可能会导致以下两个严重问题。 1、参数过多。当一个…...
活动预告 | Microsoft Azure 在线技术公开课:使用 Azure OpenAI 服务构建生成式应用
课程介绍 通过 Microsoft Learn 免费参加 Microsoft Azure 在线技术公开课,掌握创造新机遇所需的技能,加快对 Microsoft Cloud 技术的了解。参加我们举办的“使用 Azure OpenAI 服务构建生成式应用”活动,了解如何使用包括 GPT 在内的强大的…...
ubuntu安装firefox
firefox下载地址:https://ftp.mozilla.org/pub/firefox/releases/ 卸载 sudo apt-get update dpkg --get-selections |grep firefox apt-get purge firefox 解压 tar -xjf firefox*.tar.bz2复制文件 sudo mv firefox/ /opt/firefox30sudo mv /usr/bin/firefox /…...
计算机网络原理(谢希仁第八版)第4章课后习题答案
第四章 网络层 详细计算机网络(谢希仁-第八版)第四章习题全解_计算机网络第八版谢希仁课后答案-CSDN博客 1.网络层向上提供的服务有哪两种?是比较其优缺点。网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服…...
RabbitMQ-基本使用
RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…...
从零开始学架构——互联网架构的演进
1 技术演进 1.1 技术演进的动力 对于新技术,我们应该站在行业的角度上思考,哪些技术我们要采取,哪些技术我们不能用,投入成本过大会不会导致满盘皆输?市场、技术、管理三者组成的业务发展铁三角,任何一个…...
python +tkinter绘制彩虹和云朵
python tkinter绘制彩虹和云朵 彩虹,简称虹,是气象中的一种光学现象,当太阳光照射到半空中的水滴,光线被折射及反射,在天空上形成拱形的七彩光谱,由外圈至内圈呈红、橙、黄、绿、蓝、靛、紫七种颜色。事实…...
重新整理机器学习和神经网络框架
本篇重新梳理了人工智能(AI)、机器学习(ML)、神经网络(NN)和深度学习(DL)之间存在一定的包含关系,以下是它们的关系及各自内容,以及人工智能领域中深度学习分支对比整理。…...
TypyScript从入门到精通
TypyScript从入门到精通 TypyScript 是什么?增加了什么环境搭建二、为何需要 TypeScript三、编译 TypeScript四、类型声明五、类型推断基本类型六、类型总览JavaScript 中的数据类型TypeScript 中的数据类型1. 上述所有 JavaScript 类型2. 六个新类型:3.…...
【MATLAB】绘制投资组合的有效前沿
文章目录 一、数据准备二、有效前沿三、代码3.1 数据批量读取、预处理3.2 绘制可行集3.3 绘制有效前沿3.4 其它-最大夏普率 一、数据准备 准备多个股票的的历史数据,目的就是找到最优的投资组合。 下载几个标普500里面的公式的股票数据吧,下载方法也可…...
matlab时频分析库
time frequency gallery...
GBase 8s 数据库备份还原
每一天都是一个新的篇章,等待着你去书写属于自己的故事!!! 一:备份 1.1.下载脚本文件,并上传到数据库服务器上相应目录。 解压后目录为: 说明: dbcomm.sh:导出注释脚本…...
C++模板相关概念汇总
文章目录 一、模板的概念与作用二、函数模板模板的非类型参数调用顺序 三、类模板四、模板的编译模型 一、模板的概念与作用 C模板是一种强大的代码复用机制,它允许程序员编写通用的代码,能够处理不同类型的数据,而无需为每种类型都重复编写…...
MYSQL------sql基础
SQL基础与简介 定义:SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,用于存取数据以及查询、更新和管理关系数据库系统。作用:可以用于数据库的创建、数据的插入、查询、更新和…...
React Router 用法概览
React Router 用法 React 使得开发者能够轻松地创建交互式的单页应用(SPA),单页应用的一个常见挑战是如何处理页面导航和路由吗,React Router 就是解决这个问题的工具 路由(Router)是 React Router 的核心…...
网络安全之高防IP的实时监控精准防护
高防IP是一种网络安全设备,用于保护网络服务不受到各类攻击的影响,确保业务的持续稳定运行。它通过监控、识别和封锁恶意攻击流量,提供高级别的防护,降低业务被攻击的风险,并提升网络的稳定性和可靠性。 一、实时监控的…...
2024年中国新能源汽车用车发展怎么样 PaperGPT(二)
用车趋势深入分析 接上文,2024年中国新能源汽车用车发展怎么样 PaperGPT(一)-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程:2024年纯电车辆月均行驶超过1500公里&…...
LINUXC 时间相关操作
文章目录 时间戳获取本地时间struct tm 结构体高精度的时间struct timeval 结构体相关函数time()localtime()gmtime()gettimeofday()strftime()mktime() 示例代码 时间戳 时间戳是指计算机中存储的数字型时间。它是以一个特定的时间点作为起点(通常是1970年1月1日0…...
网络游戏之害
网络游戏之害: 网络游戏于今之世风靡四方,其娱人耳目、畅人心怀之效,固为人知,然所藏之害,若隐伏之暗潮,汹涌而至时,足以覆舟,尤以青年为甚,今且缕析其害,以…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
