redis主从复制+哨兵

1.主从复制

redis配置文件redis.conf

master机器:IP 192.168.1.5 ,端口  6379

设置配置参数

daemonize yes

#bind 127.0.0.1 -::1

protected-mode no

port 6379

dbfilename "dump.rdb"

dir "/root/redis/my_redis_conf/dumpdir"

logfile "/tmp/redis6379.log"

requirepass "root"    

#  下面是发开AOF持久化,不配置也没关系            

appendonly yes

appendfilename "appendonly.aof"

appenddirname "appendonlydir"

slaver1机器:IP 192.168.1.6 ,端口 6379

设置配置参数

daemonize yes

#bind 127.0.0.1 -::1

protected-mode no

port 6379

dbfilename "dump.rdb"

dir "/root/redis/my_redis_conf/dumpdir"

logfile "/tmp/redis6379.log"

requirepass "root"    

masterauth root

replicaof 192.168.1.5 6379

#  下面是发开AOF持久化,不配置也没关系            

appendonly yes

appendfilename "appendonly.aof"

appenddirname "appendonlydir"

slaver2机器:IP 192.168.1.7 ,端口 6379

设置配置参数

daemonize yes

#bind 127.0.0.1 -::1

protected-mode no

port 6379

dbfilename "dump.rdb"

dir "/root/redis/my_redis_conf/dumpdir"

logfile "/tmp/redis6379.log"

requirepass "root"    

masterauth root

replicaof 192.168.1.5 6379

#  下面是发开AOF持久化,不配置也没关系            

appendonly yes

appendfilename "appendonly.aof"

appenddirname "appendonlydir"

测试一下主从复制

先开启master,再开启两个slaver

开启redis命令:redis-server ./redis.conf

连接redis命令:redis-cli -a root

-a 后接的是密码,密码是配置文件requirepass字段指定

 master机器,客户端连接redis,输入命令 info replication查看信息

slaver机器的日志文件

主从复制的共同工作流程

1.slave启动,同步请求

slave启动后会发送一个sync命令给master

2.首次连接,全量复制

master收到sync命令后,会一次完全同步(全量复制)自身数据到slave,slave自身原有数据会被master数据覆盖清除

3.心跳持续,保持通信

master节点收到sync命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化完后,master将RDB快照文件和所有缓存的命令发送到所有slave,以完成一次完全同步

而slave服务在接收到数据后,将其存盘加载到内存中,从而完成复制初始化

4.进入平稳增量复制

master继续将新的所有收集的修改命令自动一次传给slave,完成同步

5.从机下线,重连续传

master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterId,offset是保存在backlog中的。master只会把已经复制的offset后面的数据复制给slave,类似断点续传

2.给主从复制增加哨兵

三个哨兵将都在master机器 192.168.1.5,上增加和启动

(1)复制一份redis配置文件中的哨兵配置文件【sentinel.conf】为【sentinel26379.conf】

protected-mode no

port 26379

daemonize yes

pidfile "/var/run/redis-sentinel26379.pid"

logfile "/tmp/sentinel26379.log"

dir "/tmp"

sentinel monitor mymaster 192.168.1.5 6379 2

sentinel auth-pass mymaster root

(2)复制一份redis配置文件中的哨兵配置文件【sentinel.conf】为【sentinel26380.conf】

protected-mode no

port 26380

daemonize yes

pidfile "/var/run/redis-sentinel26380.pid"

logfile "/tmp/sentinel26380.log"

dir "/tmp"

sentinel monitor mymaster 192.168.1.5 6379 2

sentinel auth-pass mymaster root

(3)复制一份redis配置文件中的哨兵配置文件【sentinel.conf】为【sentinel26381.conf】

protected-mode no

port 26381

daemonize yes

pidfile "/var/run/redis-sentinel26381.pid"

logfile "/tmp/sentinel26381.log"

dir "/tmp"

sentinel monitor mymaster 192.168.1.5 6379 2

sentinel auth-pass mymaster root

启动哨兵

redis-sentinel sentinel26379.conf --sentinel

redis-sentinel sentinel26380.conf --sentinel

redis-sentinel sentinel26381.conf --sentinel

查看哨兵是否启动

查看哨兵日志

/tmp/sentinel26379.log,/tmp/sentinel26380.log,/tmp/sentinel26381.log

验证

断开master

投票给192.168.1.6,到192.168.1.6查看是不是新的master,可以看到192.168.1.6成为新的master

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode刷题日记:110. Balanced Binary Tree(平衡二叉树)

题目给了我们一个二叉树要让我们来判断这一个二叉树是不是平衡二叉树。 要想判断一棵树是不是平衡二叉树,我们得首先知道平衡二叉树的定义是什么,平衡二叉树指的是这样的树它的左子树的高度与右子树高度的差的绝对值不能超过1,而且它的左子树…

酷柚易汛ERP-客户管理操作指南

1、应用场景 对客户信息进行管理,可新增客户、设置客户等级、联系人信息、银行账户和销售人员等信息,方便开单时自动匹配销售信息。 2、主要操作 2.1 新增客户 打开【资料】-【客户管理】,点击【新增】。 在页面输入客户信息、联系人地址…

Servlet作业小练习

一.题目 利用JavaBean实现用户类,包含姓名、性别、爱好,爱好需要用多选框 实现表单1进行获取数据,表单2显示获取结果。 利用Servlet实现逻辑代码 二.实现效果 三.具体实现 1.User实体类 package com.hjj.pojo;/*** author:嘉佳 Date:20…

Auto-Encoder学习笔记

写在前面 本篇博客是本人在学习李宏毅老师的《机器学习》课程中的Auto-Encoder时,记录的相关笔记,由于只记录了我认为相对重要的部分,所以可能有未记录的部分。博客中的图片来自于教学视频中的截图,视频资源地址为:传…

【面试经典150 | 位运算】位1的个数

文章目录 写在前面Tag题目来源题目解读解题思路方法一:循环检查二进制位方法二:位运算优化方法三:__builtin_popcount() 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…

基于SSM的汽车租赁系统业务管理子系统设计实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

SQL必知会(二)-SQL查询篇(7)-使用函数处理数据

第8课、使用函数处理数据 表8-1 DBMS 函数的差异 函数语法提取字符串的组成DB2、Oracle、PostgreSQL 和 SQLite 使用 SUBSTR();MariaDB、Mysql 和 SQL Server 使用 SUBSTRING()数据类型转换Oracle 使用多个函数,每种类型的转换有一个函数;D…

在ubuntu sudo apt-get update 更新报错

sudo apt-get update 更新报错 解决办法: 用你自己的key 根据上图自己找 sudo gpg --keyserver keyserver.ubuntu.com --recv-keys **********运行完成有一个ok 见下图 运行命令,中间的还是上面的key复制下来即可 sudo gpg --export --armor **********…

开源跨平台绘图软件draw.io Mac/Win免费下载:让创意无限飞

你是否曾经遇到过在创作时,因为缺乏合适的绘图工具而无法充分表达你的想法?或者在团队项目中,因为沟通障碍而无法有效地进行视觉呈现?现在,让我们一起探索一个全新的开源跨平台绘图软件 - draw.io。 draw.io是一款完全…

logistic回归 目的、方程、损失函数

logistic回归多用于二分类问题。 文章目录 目的:给出x,当x满足条件时,y1的概率是多少。方程: y ^ σ ( ω T x b ) \hat y \sigma(\omega^Txb) y^​σ(ωTxb)损失函数: J ( ω , b ) 1 m ∑ i 1 m L ( y ^ ( i ) …

本地编译安装 Minkowski Engine 报错 Cuda 版本 与 Pytorch 版本不匹配

编译 Cuda 版本 C 插件 Cuda 版本 与 Pytorch 版本不匹配解决方案 报错详情环境报错分析 报错详情 RuntimeError: The detected CUDA version (12.2) mismatches the version that was used to compile PyTorch (11.8). Please make sure to use the same CUDA versions.环境 …

环境变量小节

这是写的第二篇环境变量博客,写了一年多了,第一次出现把自己博客删了的情况,不知道为什么明明发表了,然后就把草稿箱和回收站的删了,结果晚上发现没发表,回收站删除是无法找回的,以后还是要慎重…

git基础知识

1.git的必要配置 所有的配置文件,其实都保存在本地! 查看所有配置 git config -l 即把 系统配置(system)和当前用户(global)配置都 列出来 以直接编辑配置文件,通过命令设置后会响应到这里。 注意: 如果…

传统测试将被取代?AI测试现状及发展之思

近年来,我一直关注AI相关的测试,并积极参与多个全国性测试社区和社群。在这些社区中,我与不同公司和领域的测试专家交流探讨AI测试相关话题,包括业界顶尖公司的专家和国内知名测试学者。我也参加了多个大会,聆听了许多…

B087-人力资源项目-文件上传课程分类

目录 背景控制台操作开通OSS服务创建存储空间 项目工程准备概述新建文件管理模块把文件上传到OSS的三种方案 通过官方文档完成demo上传官方文档找JavaSDK文件上传思路代码 背景 为什么要交给第三方文件管理服务管理? 最传统的的文件管理方案是把文件存储到项目中本…

半小时拥有自己的ChatGPT4,高效低成本,无脑跟即可

文章目录 一、获取Key二、获取服务器三、设置端口三、安装Docker环境 一、获取Key 最简单的获取方法,去某宝搜 “open账号ai” 购入一个key,几块钱,有3.5、4.0,买3.5就行了,4.0太贵了。注意是购入key,不是…

Elasticsearch 和 Go 中使用向量搜索寻找地鼠

作者:CARLY RICHMOND,LAURENT SAINT-FLIX 就像动物和编程语言一样,搜索也经历了不同实践的演变,很难在其中做出选择。 加入我们的第二部分,通过 Elasticsearch 中的矢量搜索在 Go 中狩猎地鼠(gophers&…

Install Docker in Linux

Docker官网链接: https://docs.docker.com/ 1.确定Linux版本 新版本的Docker对Linux系统版本有一定的要求。如果Linux的发行版系统是centOS,安装最新版的docker需要centOS 7以上的系统。 在Docker安装帮助页面查看支持的系统版本。 Docker帮助页面:https://docs…

13 套接字Socket

1、Socket 编程 socket编程基于 TCP 和 UDP 协议的tcp和udp是区分客户端和服务端的,所以我们的socket编程也是区分的。 2、socket是端到端的通信 1.Socket 这个名字很有意思,可以作插口或者插槽讲 2.一头插在客户端,一头插在服务端&#x…

拉晶工艺设备——切片机

单晶炉拉出硅棒后,经硅棒切断、外园整形,便用切片机切成薄片,供后续工艺使用。切片机也用于玻璃、陶瓷、 大理石、花岗岩等硬脆材料的切割。 半导体行业使用的切片机按结构形式可分为立式切片机、卧式切片机,按刀片形式可分内圆切…