redis群集(主从复制)

news2024/11/13 9:46:16

---------------------- Redis 主从复制 ----------------------------------------
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。

默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。


#主从复制的作用:
●数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
●故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。
●负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。
●高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。


#主从复制流程:
(1)若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步连接。
(2)无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。
(3)后台进程完成缓存操作之后,Master机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接。
(4)Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

---------------------- 搭建Redis 主从复制 ----------------------------------------
Master节点: 192.168.8.10
Slave1节点: 192.168.8.20
Slave2节点: 192.168.8.40

systemctl stop firewalld
setenforce 0

-----安装 Redis-----
yum install -y gcc gcc-c++ make

tar zxvf redis-5.0.7.tar.gz -C /opt/
make
make PREFIX=/usr/local/redis install

cd /opt/redis-5.0.7/utils
./install_server.sh
......
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server      

 

ln -s /usr/local/redis/bin/* /usr/local/bin/


-----修改 Redis 配置文件(Master节点操作)-----
vim /etc/redis/6379.conf   redis.conf
bind 0.0.0.0                        #70行,修改监听地址为0.0.0.0


daemonize yes                        #137行,开启守护进程
logfile /var/log/redis_6379.log        #172行,指定日志文件目录
dir /var/lib/redis/6379                #264行,指定工作目录
appendonly yes                        #700行,开启AOF持久化功能

 

 


/etc/init.d/redis_6379 restart


-----修改 Redis 配置文件(Slave节点操作)-----
vim /etc/redis/6379.conf
bind 0.0.0.0                        #70行,修改监听地址为0.0.0.0
daemonize yes                        #137行,开启守护进程


logfile /var/log/redis_6379.log        #172行,指定日志文件目录
dir /var/lib/redis/6379                #264行,指定工作目录        #288行,指定要同步的Master节点IP和端口


replicaof 192.168.10.22 6379
appendonly yes                        #700行,开启AOF持久化功能

 

 

 


/etc/init.d/redis_6379 restart

-----验证主从效果-----
在Master节点上看日志:
tail -f /var/log/redis_6379.log 
Replica 192.168.8.20:6379 asks for synchronization
Replica 192.168.8.40:6379 asks for synchronization

 在Master节点上验证从节点:
redis-cli info replication

 

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

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

相关文章

QT基于TCP协议实现数据传输以及波形绘制——安卓APP及Windows程序双版本

文章代码有非常非常之详细的解析!!!诸位可放心食用 这个玩意我做了两个,一个是安卓app,一个是Windows程序。代码并非全部都是由我从无到有实现,只是实现了我想要的功能。多亏了巨人的肩膀,开源…

农业中的计算机视觉 2023

物体检测应用于检测田间收割机和果园苹果 一、说明 欢迎来到Voxel51的计算机视觉行业聚焦博客系列的第一期。每个月,我们都将重点介绍不同行业(从建筑到气候技术,从零售到机器人等)如何使用计算机视觉、机器学习和人工智能来推动…

【导入外部jar包到maven项目中--亲测可行】

若项目为springweb项目,则先将jar放到WEB-INF/lib 目录下选中对应的jar包,右键选项 add-lirrary ;成功加入之后的jar包是一个项目的目录结构: 至此,项目能够正常运行,在代码周也能够进行导包 转折点&…

Vue2 第二节 ----初识Vue(简单示例,模板语法,数据绑定)

知识点&#xff1a; 1.Vue的简单示例 2.模板语法 3.数据绑定 4.el和data的两种写法 5.MVVM模型 一. Vue的简单实例 <div id"root"><h1>hello, {{name.toUpperCase()}}, {{address}}</h1></div><script type"text/javascript&q…

2023年二季度中国手机销量排行榜:华为逆袭上榜,苹果仅位列第五,第一名很意外!

近日&#xff0c;国际数据公司&#xff08;IDC&#xff09;现发布最新手机季度跟踪报告显示&#xff0c;2023 年第二季度&#xff0c;中国智能手机市场出货量约 6,570 万台&#xff0c;同比下降 2.1%&#xff0c;降幅明显收窄。 今年上半年&#xff0c;中国智能手机市场出货量…

了解Unity编辑器之组件篇Physics 2D(十二)

一、Area Effector 2D区域施加力&#xff09;&#xff1a;用于控制区域施加力的行为 Use Collider Mask&#xff08;使用碰撞器遮罩&#xff09;&#xff1a;启用后&#xff0c;区域施加力仅会作用于特定的碰撞器。可以使用Collider Mask属性选择要作用的碰撞器。 Collider Ma…

揭秘低代码谜团,好用到不行

一、前言 低代码“灵活、快速、低门槛”的标签&#xff0c;为其带来了诸多争议。在低代码平台上是否只能搭建极其简单、无亮点的小功能&#xff1f;低代码带来的“全民程序员”化是否能真正带来社会价值&#xff1f;这是一场繁荣的泡沫假象&#xff0c;还是真实的市场需求&…

浅谈深拷贝与浅拷贝

一、拷贝&#xff08;克隆&#xff09;的意义的场景 意义&#xff1a;保证原数据的完整性和独立性 常见场景&#xff1a;复制数据、函数入参、class构造函数 二、浅拷贝 只克隆对象的第一层级如果属性值是原始数据类型&#xff0c;拷贝其值&#xff0c;即&#xff1a;值拷贝…

anaconda切换python版本

1 查看环境 conda env list结果如下图&#xff0c;左侧表示已下载的环境信息&#xff0c;当前我已经下载了python3.10&#xff08;python310&#xff09;和3.9&#xff08;python39&#xff09;两个版本 2 切换python版本 conda activate python3103 下载python # 下载pyt…

【玩转pandas系列】巧妙处理某瓣电影top250空数据

向阳花花花花 - 个人主页 迄今所有人生都大写着失败&#xff0c;但并不妨碍我继续向前 Python 数据分析专栏 正在火热更新中 &#x1f525; 文章目录 前言一、处理某瓣电影top250空数据二、对于空值&#xff0c;有没有别的处理办法&#xff1f;三、上述案例总结3.1 查看数据信…

个人博客系统 -- 博客列表页删除Markdown字符

之前的博客系统的列表页会有在markdown编辑器中的特殊字符,比如标题的字符#之类的,在列表页进行展示的时候,我们需要将这些字符进行筛选. 对这些字符进行筛选,我们可以通过排设计正则表达式进行筛选,也可以使用组件的方式进行筛选.下面我来总结一下,使用组件的方式进行筛选. 这…

Codeforces Round 886 (Div. 4)F题解

文章目录 [We Were Both Children](https://codeforces.com/contest/1850/problem/F)问题建模问题分析1.分析到达的点与跳跃距离的关系2.方法1倍数法累计每个点所能达到的青蛙数代码 方法2试除法累计每个点能到达的青蛙数代码 We Were Both Children 问题建模 给定n个青蛙每次…

Mac平台首选原生轻量级的嵌入式数据库引擎:Native SQLite Manager for Mac

亲爱的读者&#xff0c;如果你是一位在Mac平台上使用SQLite数据库的开发者或数据分析师&#xff0c;那么本文将为你介绍一款非常实用的工具——原生SQLite管理器。 SQLite是一种轻量级的嵌入式数据库引擎&#xff0c;被广泛应用于各种应用程序和系统中。它具有高效、可靠和易于…

ThirdAI 的私有和可个性化神经数据库:增强检索增强生成(第 3/3 部分)

这是我们关于使用检索增强生成构建 AI 代理的系列的最后一章 &#xff08;3/3&#xff09;。在第 1/3 部分中&#xff0c;我们讨论了断开连接的嵌入和基于矢量的检索管道的局限性。在第 2/3 部分中&#xff0c;我们介绍了神经数据库&#xff0c;它消除了存储和操作繁重且昂贵的…

GitHub上怎么寻找项目?

前言 下面由我精心整理的关于github项目资源搜索的一些方法&#xff0c;这些方法可以帮助你更快更精确的搜寻到你需要的符合你要求的项目。 写文章不易&#xff0c;如果这一篇问文章对你有帮助&#xff0c;求点赞求收藏~ 好&#xff0c;下面我们直接进入正题——> 首先我…

接口测试必备的,2种常⽤的JSON解析⽅法

JSON简介 一、JSON是什么&#xff1f; JSON: JavaScript Object Notation JS对象简谱&#xff0c;是一种轻量级的数据交换模式。 二、JSON语法&#xff1a; 对象中通过键值对 (key: value)的形式来表示对象的属性 注意&#xff1a;value即可以表示属性变量&#xff0c;又可…

【数据结构(C++版)】哈希表(散列表)

目录 1. 散列表的概念 2. 散列函数的构造方法 2.1 直接定址法 2.2 除留余数法 2.3 数字分析法 2.4 平方取中法 3. 处理冲突的方法 3.1 开放定址法 3.1.1 线性探测法 3.1.2 平方探测法 3.1.3 双散列法 3.1.4 伪随机序列法 3.2 拉链法&#xff08;链接法&#xff09…

数据结构---并查集

目录标题 为什么会有并查集并查集的原理模拟实现并查集准备工作构造函数FindRootUnionSetCount 并查集实战题目一&#xff1a;省份数量题目解析题目二&#xff1a;等式方程的可满足性题目解析 为什么会有并查集 这里可以使用生活中的一个例子来带着大家理解并查集&#xff0c;…

机器学习03-数据理解(小白快速理解分析Pima Indians数据集)

机器学习数据理解是指对数据集进行详细的分析和探索&#xff0c;以了解数据的结构、特征、分布和质量。数据理解是进行机器学习项目的重要第一步&#xff0c;它有助于我们对数据的基本属性有全面的了解&#xff0c;并为后续的数据预处理、特征工程和模型选择提供指导。 数据理解…