rsync同步备份(增备+完备)

本文详细介绍了Redis的持久化机制,包括RDB和AOF的区别、优缺点及应用场景。此外,还探讨了Redis的主从复制、哨兵和集群模式,强调了高可用性的重要性。接着,讲解了rsync的全量和增量备份,以及如何配置rsync服务器进行数据同步。最后,提到了rsync结合inotify实现实时同步的策略,以及利用rsync快速删除大量文件的方法。
摘要由CSDN通过智能技术生成

一、Redis持久化

1.1持久化的功能:

Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久失,需要定期将Redis中
的数据以某种形式(
数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置(NFS)。

Redis提供两种方式进行持久化:

  • RDB持久化:原理是将Reids在内存中的数据库记录定时保存到磁盘上。(类似快照)
  • AOF持久化(append only file) :原理是将Reids的操作日志以追加的方式写入文件,类似于MySQL的binlog。 (基于日志持久化方式)

1.1.1redis 基础

redis 是一种非关数据库(内存/缓存)

redis 相比于其他非关数据库优势的地方主要在于

  • 数据类型丰富
  • 持久化 (可以讲内存中的数据保存在磁盘中)形式为:RDB 与 AOF
  • 使用epoll+I/O多路复用以及回调机制提升单线程模型的处理性能减少资源消耗(处理性能优化)

1.2redis 集群模式:哨兵、主从、cluster (集群)

redis的集群模式,同时也可以理解为是redis的高可用模式.
主从:提供了备份冗余,缺点:无法针对故障进行自动修复,写操作无法负载均衡
哨兵:以主从为基础提供了故障自动修复的功能,写操作无法负载均衡
集群:基于主从基础,解决了故障自动修复、写操作负载均衡的问题,同时对于资源需求相较于前两种集群得到了一定的改善

1.3高可用中的持久化

RDB和AOF
(1)持久化方式:
团.RDB:周期性的快照
◎AOF :接近实时的持久化(以everysec方式)
(2)redis启用的优先级
AOF>RDB,同时仅当A0F功能关闭的情况下,redis才会在重新启动时使用RDB的方式进行恢复
(3) RDB和AOF中持久化模式
DRDB:
由redis主进程( 周期性) fork 派生出子进程对redis内存中的数据进行持久化,生成到. rdb文件中
②AOF:
根据持久化策略(alawys、 no、 everysec (默认) ),先将redis 中的语句保存在缓冲区中,再从缓冲
区同步到.aof文件中
4、redis的恢 复策略/优势
redis与其他常用非关数据库类似,都是将数据保存在内存中.
而保存在内存中时,当redis 重启,内存数据丢失,但redis 通过RDB或AOF的持久化功能可以在redis
进行重启之后,优先读取AOF文件,基于AOF文件进行数据恢复这种方式来“持久化保存”数据

1.4.淘汰策略

默认是惰性删除

随机淘汰

淘汰近期命中较少的数据

#定期删除——》保证两种持久化完成的情况下,同时业务不繁忙/终止业务的时候,删除为了解决缓存压力过大而导致使用swap交换分区以及牵扯到的其他功能模块问题

其他功能模块: AFO的持久化

1.5流量控制

漏桶

令牌桶

1.6小结:

而试点① : RDB持久化、A0F持 久化的区别,主要为以下四点
触发式临界值之前

实现方式
文件体积
安全性
优先级

①实现方式
RDB持久化是通过将某个时间点Redis服务器存储的数据保存到RDB文件中来实现持久化的。

AOF持久化是通过将Redis服务器执行的所有写命令保存到AOF文件中来实现持久化的。

①文件体积
由以上实现方式可知,RDB持久化记录的是结果,AOF持久化记录的是过程,所以AOF持久化生成的AOF文件会有体积越来越大的问题,Redis
提供了AOF重写功能来减小AOF文件体积。
③安全性
AOF持久化的安全性要比RDB持久化的安全性高,即如果发生机器故障,AOF持久化要比RDB持久化丢失的数据要少。
因为RDB持久化会丢失上次RDB持久化后写入的数据,而A0F持久化最多丢失1s之内写入的数据(使用默认everysec配置的话) 。
4.优先级
由于以上的安全性问题,如果Redis服务器开启了AOF持久化功能,Redis服务器在启动时会使用AOF文件来还原数据,如果Redis服务器没有
开启A0F持久化功能,Redis服务器在启动时会使用RDB文件来还原数据,所以AOF文件的优先级比RDB文件的优先级高。

模块数据流向:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFwkF8UG-1641707667964)(C:\Users\赵金华\Desktop\整理复习\赵金华\rsync图片\1.png)]

二、redis主从复制

2.1主从复制原理图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c2ZVTGXk-1641707667965)(C:\Users\赵金华\Desktop\整理复习\rsync图片\2.png)]

  • 从库生成两个线程,一个I/O线程,一个SQL线程;
  • i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志)文件中;
  • 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
  • SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

2.2.哨兵们监控整个系统节点的过程

1.首先主节点的信息是配置在哨兵(Sentinel)的配置文件中

2.哨兵节点会和配置的主节点建立起两条连接命令连接和订阅连接

PS:Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub) 接收消息。

3.哨兵会通过命令连接每10s发送一次INFO命令,通过INFO命令,主节点会返回自己的run_id和自己的从节点信息

4.国哨兵会对这些从节点也建立两条连接命令连接和订阅连接

5.哨兵通过命令连接向从节点发送INFO命令,获取到他的一些信息:
run id (redis服务器id)
role (职能)
从服务器的复制偏移量offset
其他

6.通过命令连接向服务器的sentinel:he11o频道发送一条消息,内容包括自己的ip端口、runid、配置(后续投票的时候会用到)等

7.通过订阅连接对服务器的sentinel:hello频道做了监听,所以所有的向该频道发送的哨兵的消息都能被接受到

8.解析监听到的消息,进行分析提取,就可以知道还有那些别的哨兵服务节点也在监听这些主从节点了,更新结构体将这些哨兵节点记录下来

简易版本:

1.主节点信息配置在哨兵的文件中

2.哨兵会和配置的主节点建立两条连接命令和订阅连接 pub和sub

3.哨兵10s发送一次info连接,由info命令主节点会返回自己的run id和从节点

4.哨兵对从节点也建立两条连接命令和订阅连接

5.哨兵通过命令连接向从节点发送info命令,获取run id、 role ,offset

6.由命令连接给服务器的hello频道发送一条消息

7.通过订阅连接对服务器hello频道做监听

8.解析监听消息,分析提取,从而知道另外的哨兵监听这些节点了,并将哨兵节点记录下来。

三、rsync服务器

3.1.Rsync 介绍

  • rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。
  • rsync软件适用于unix/linux/windows等多种操作系统平台
  • rsync是 一- 个快速和非常方便的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制
  • 以其delta-transfer算法闻 名。
  • rsync监听端口: 873
  • rsync运行模式: C/S

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老赵学coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值