ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis持久化的两种方式

2021-10-02 17:31:57  阅读:138  来源: 互联网

标签:AOF 两种 持久 aof Redis RDB 进程


RDB和AOF

RDB:

rdb就是在指定的时间间隔把内存中的数据集快照写入磁盘。

Redis会单独fork一个子进程来进行持久化,会先将数据写入一个临时文件,待持久化过程结束后,再用这个临时文件替换上次持久化好的文件。

对应产⽣的数据⽂件为 dump.rdb

优点:

1.性能最大化。对于 Redis 的服务进程而言,在开始持久化时,它唯一需要做的只是 fork 出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行 IO 操作了。也就是说,RDB 对 Redis 对外提供的读写服务,影响非常小,可以让 Redis 保持高性能。

2.性能最大化。对于 Redis 的服务进程而言,在开始持久化时,它唯一需要做的只是 fork 出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行 IO 操作了。也就是说,RDB 对 Redis 对外提供的读写服务,影响非常小,可以让 Redis 保持高性能。

3.非常适合冷备份,对于灾难恢复而言,RDB 是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。

缺点:

因为系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。所以,RDB 实际场景下,需要和 AOF 一起使用。

AOF:

aof是以日志的形式来记录每一个写操作(增量状态),将redis执行过的所有写指令记录下来,读操作不记录,只许追加文件但不可以改写文件。

具体的流程的话就是,

客户端的请求写命令,append追加到我AOF的缓冲区内;

aof缓冲区根据aof持久化策略[always/everysec/no]将操作同步到aof磁盘文件中;

aof文件大小超过重写策略或者手动重写的时候,会对aof进行rewrite重写,压缩aof文件容量;

redis服务重启的时候会重新reload加载aof文件中的写操作以达到数据恢复的目的。

优点:

1.数据安全,三种同步策略:每秒同步、每修改同步、不同步,一旦数据据宕机,每秒同步也只丢失一秒的数据,。

2.aof中的rewirte机制,定期对aof进行重写,达到压缩的目的。

3.通过append模式写文件,即使中途服务器宕机也不会已存在的内容,可以通过redis-check-aof工具解决数据一致性的问题。

缺点:

1.aof比起rdb占用更大的磁盘空间。

2.每一次读写都需要同步,带来了一定的性能压力。

3.备份恢复速度慢。

区别:

AOF文件比RDB更新频率高,优先使用AOF还原数据,AOF安全更大。

RDB性能比AOF性能好。

如果两个都配置了,优先使用AOF。

标签:AOF,两种,持久,aof,Redis,RDB,进程
来源: https://blog.csdn.net/qq_43751404/article/details/120587576

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有