Redis高可用之持久化、主从复制

news/2024/11/16 17:46:44/文章来源:https://www.cnblogs.com/hxqwe/p/18294927

一、Redis高可用

策略概述
持久化 持久化是最简单的高可用方法,主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。
主从复制 主从复制是高可用Redis的基础,主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复
哨兵 在主从复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡,存储能力受到单机的限制。
集群 通过集群,Redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。

二、Redis 持久化

1.简介

Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;

当下次Redis重启时,利用持久化文件实现数据恢复。

除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。

2.Redis 的两种持久化方式

RDB持久化

定时把redis内存中的数据进行快照并压缩保存到硬盘;

RDB持久化保存的文件占用空间小,网络传输快,恢复速度也比AOF快,性能影响比AOF更小;

实时性不如AOF,兼容性较差,持久化期间在fork子进程时会阻塞reids父进程。

AOF持久化

以追加的方式将Redis写操作的命令记录到文件中;

实时性比RDB好,支持秒级持久化,兼容性较好;

持久化保存的文件占用磁盘空间更大,恢复速度更慢,性能影响更大,AOF文件重写期间在fork子进程时会阻塞reids父进程;

两者区别可通过 *工作方式、实时性、磁盘占用、恢复速度、兼容性、IO性能影响等方面进行阐述。

三、Redis主从复制

1.主从复制工作原理

Redis主从之间的复制分为两部分:全量复制和增量复制。

全量复制

Redis在第一次实现主从关系时会进行全量复制

1)Slave 通过 psync命令同步数据与Master建立socket长连接;

2)Master 收到psync命令,执行bgsave语句生成RDB快照;

3)Master发送RDB数据;

4)Slave清空数据并加载Master发来的RDB数据;

5)Master将生成RDB文件过程中,修改的数据,从repl buffer发送给Slave;

6)Slave执行接收到的修改命令;

7)Master通过socket长连接持续把写命令发送给从接单,保证数据一致性。

增量复制

如果由于网络原因造成原因造成主从断开,期间有数据写入master,再次形成主从时,会形成增量复制

1)Slave连接断开;

2)Master最近数据的修改命令的缓存;

3)Slave重新建立Socket长连接到master;

4)Slave psync命令同步数据: offset偏移量控制;

5)Master判断 Slave的offset。如果在repl backlog buffer中,Master会将缓存中从salve的offset之后数据一次性同步给salve节点,否则会全量同步;

6)Master通过socket长连接持续把写命令发送给从节点,保证主从一致性。

2.Redis主从同步策略

主从刚刚连接的时候,进行全量同步;全同步结束后,进行增量同步。

当然,如果有需要,slave 在任何时候都可以发起全量同步。

redis 策略是,无论如何,首先会尝试进行增量同步,如不成功,要求从机进行全量同步

四、搭建Redis主从复制

节点服务器IP地址
Master 192.168.100.146
Slave 192.168.100.155

Step1 Master节点修改 Redis 配置文件

vim /apps/redis/etc/redis.confbind 0.0.0.0                                #修改监听地址为0.0.0.0
protected-mode no                           #将本机访问保护模式设置no
port 6379                                   #Redis默认的监听6379端口
daemonize yes                              #设置为守护进程,后台启动
pidfile /apps/redis/run/redis_6379.pid       #指定 PID 文件
logfile /apps/redis/log/redis_6379.log      #指定日志文件
dir /usr/local/redis/data                     #指定持久化文件所在目录
#requirepass abc123                         #可选,设置redis密码
appendonly yes                              #开启AOF
systemctl restart redis-server.service

Step2 Slave节点修改 Redis 配置文件

vim /apps/redis/etc/redis.confbind 0.0.0.0                            #修改监听地址为0.0.0.0
protected-mode no                        #将本机访问保护模式设置no
port 6379                                #Redis默认的监听6379端口
daemonize yes                            #设置为守护进程,后台启动
pidfile /apps/redis/run/redis_6379.pid        #指定 PID 文件
logfile /apps/redis/log/redis_6379.log     #指定日志文件
dir /apps/redis/data                #指定持久化文件所在目录
replicaof 192.168.100.146 6379            #指定要同步的Master节点IP和端口
masterauth 123                           #可选,指定Master节点的密码,仅在Master节点设置了requirepass
requirepass abc123                        #可选,设置redis密码
appendonly yes                            #开启AOF

Step3 主从效果验证

#在Master节点上看日志:
tail -f /apps/redis/log/redis.log 

#从服务器查看主从复制状态
info Persistence

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易优eyoucms后台登录地址能否更改?

请在功能地图-安全中心里修改本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18295889

织梦DedeCMS怎么更换编辑器

入口: 系统 > 系统设置 > 系统基本参数 > 核心设置 > 编辑器默认可选参数: wangEditor 、 ckeditor 、 fck本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18295890

易优eyoucms模板文件lists_tags.htm不存在,怎么弄 Eyoucms快速入门

/template/pc/lists_tags.htm 这个模板怎么弄呀需要你自己在模板目录添加这个文件,也可以下载官方的模板包,在模板目录提取这个文件添加到对应的模板目录。HTML代码和样式文件需要自己添加 标签在这里{eyou:tag sort=now getall=0 row=100} <a href={$field.link}>{$fi…

易优eyoucms系统导入就数据库出问题了,如何升级数据库?

安装新版本。然后倒入数据库,就这样了 错误原因: 数据库版本需要一样 数据库有新建模型的 需要打补丁包再导入 本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18295879

安装织梦dedecms出现:数据库服务器或登录密码无效,无法连接数据库,请重新设定

安装织梦时出现:数据库服务器或登录密码无效,无法连接数据库,请重新设定,如图, 分析:原因是您在安装时输入的数据库信息有误,连接不上数据库导致. 解决方法:重新输入正确的数据库名和密码即可,若是自行搭建环境,请自行核实。)本文来自博客园,作者:黄文Rex,转载请注明原文…

易优CMS模板标签user会员信息完整的会员中心标签调法

易优CMS模板标签user会员信息完整的会员中心标签调法 更新日期:2024-06-22 14:27:19 来源:网络 user 登录注册入口标签 [基础用法]标签:user描述:动态显示购物车、登录、注册、退出、会员中心的入口;用法: {eyou:user type=userinfo} <div id="{$f…

帝国CMS网站安全设置php配置文件php.ini设置

hp配置文件php.ini设置:1、magic_quotes_gpc 设置为 On 魔术引用,此项建议开启。2、register_globals 设置为 Off PHP全局变量,此项建议关闭。3、display_errors 设置为 Off 不显示PHP错误提示,此项设置对系统安全影响不大。本文来自博客园,作者:黄文Rex,转载请注…

Thinkphp 出现 “_CACHE_WRITE_ERROR” 错误的可能解决办法

有可能是老毛病: Cache文件夹和里面的文件,php没有权限 解决办法: chmod -R 777 /.............../www/Cache本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18295864

绘制带误差分析的柱状图

1.检查原始数据 原始数据展示如下:工况 工况1 工况2 工况3 工况4 工况5M 89.37 86.05 92.95 87.44 73.56DF-1 87.45 80.98 89.68 84.43 73.46DF-2 86.00 81.54 89.68 84.43 73.46UP 85.30 85.23 87.59 86.64 64.32△DF-1 1.91 5.07 3.26 3.00 /△DF-2 3.37 4.51 3.26 3.00 /△…

3SRB5016-ASEMI逆变箱专用3SRB5016

3SRB5016-ASEMI逆变箱专用3SRB5016编辑:ll 3SRB5016-ASEMI逆变箱专用3SRB5016 型号:3SRB5016 品牌:ASEMI 封装:SGBJ-5 批号:2024+ 现货:50000+ 最大重复峰值反向电压:1600V 最大正向平均整流电流(Vdss):50A 功率(Pd):大功率 芯片个数:5 引脚数量:5 类型:整流扁桥、…

vue3 smooth-signature 带笔锋手写签名

mini-smooth-signature 小程序版带笔锋手写签名,支持多平台小程序使用 参考:GitHub - linjc/smooth-signature: H5带笔锋手写签名,支持PC端和移动端,任何前端框架均可使用 一、安装npm install smooth-signature # 或 yarn add smooth-signature或通过<script>引用,…

服务器断电后无法开机

当服务器断电后无法开机,‌可能的原因和解决方法包括:‌ .电源和断路器检查:‌首先应检查服务器的电源系统和断路器是否正常工作,‌确保有足够的电力供应。‌建议保存备份电源以避免断电造成的损害和损失。‌ .电源开关检查:‌确认服务器的电源开关处于正常位置。‌如果电…