当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/226104.html

相关文章:

  • html动态爱心超文本标记代码,丝滑流畅有特效,附源码
  • 力扣:162. 寻找峰值(Python3)
  • 【Python】20大报告生成词云
  • 目标检测YOLO实战应用案例100讲-基于无人机的轻量化目标检测系统设计
  • ansible-第二天
  • 【测试工具】UnixBench 测试
  • 软件测试金融项目,在测试的时候一定要避开的一些雷区
  • 顺序图——画法详解
  • easyexcel==省市区三级联动
  • Linux进程控制(二)--进程等待(一)
  • 【C++】C++11常用特性梳理
  • 修改iframe生成的pdf的比例
  • C++之list的用法介绍
  • Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结
  • yolov5 利用Labelimg对图片进行标注
  • 完整版付费进群带定位源码
  • 华为L410上制作内网镜像模板01
  • linuxC语言缓冲区及小程序的实现
  • MySQL数据库基本操作-DDL 数据库基础知识
  • 基于JavaWeb+SpringBoot+Vue摩托车商城微信小程序系统的设计和实现
  • idea代码快捷键Mac版
  • 分享76个Python管理系统源代码总有一个是你想要的
  • Springboot养老院信息管理系统的开发-计算机毕设 附源码27500
  • 在虚拟机中安装vim和net-tools,mysql
  • 【Excel】函数sumif范围中符合指定条件的值求和
  • k8s上对Pod的管理部分详解
  • 4.4.2 结构可以将 string类作为成员吗
  • npm install 安装总结
  • 二十三种设计模式全面解析-组合模式与享元模式的结合应用:实现对象的共享和高效管理
  • jenkins分步式构建环境(agent)