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…...
网络游戏之害
网络游戏之害: 网络游戏于今之世风靡四方,其娱人耳目、畅人心怀之效,固为人知,然所藏之害,若隐伏之暗潮,汹涌而至时,足以覆舟,尤以青年为甚,今且缕析其害,以…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
