【Redis】Redis持久化机制RDB与AOF

这篇具有很好参考价值的文章主要介绍了【Redis】Redis持久化机制RDB与AOF。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、RDB

1、概念

2、RDB文件保存

3、执行RDB

4、触发RDB

5、fork原理

6、RDB的缺点

二、AOF

1、概念

2、开启AOF

3、触发AOF

4、触发重写AOF

三、区别


一、RDB

1、概念

RDB全称为Redis Database Backup File(Redis数据备份文件),也叫做Redis数据快照。简单的来说就是把某一时刻Redis内存里的数据都记录到磁盘中,当Redis实例故障重启后,从磁盘读取快照文件恢复数据

2、RDB文件保存

在Redis的配置文件中我们可以修改RDB文件的相关配置,比如RDB文件的保存路径,与该文件是否压缩

rdbcompression yes  # 是否压缩、不建议开启,压缩文件会消耗CPU

dbfilename dump.rdb # RDB文件的名称

dir ./ # 文件保存路径,默认保存到当前运行目录

3、执行RDB

在Redis的客户端,我们可以通过save与bgsave执行快照操作,两者的区别是save是占用主进程去执行,而bgsave是开启一个子进程去执行,我们知道Redis是单进程的,我们如果使用save命令时,这个命令会占用当前进程使得其他命令阻塞等待,通常在Redis服务关闭时执行一次save命令

4、触发RDB

我们可以在Redis的配置文件中修改触发RDB的规则

save 900 1       # 900秒内,如果至少有一个key被修改 则执行bgsave

save 300 10    # 300秒内,如果至少有十个key被修改 则执行bgsave

save 600 10000  # 600秒内,如果至少有一万个key被修改 则执行bgsave

5、fork原理

bgsave在执行的时候会fork主进程得到子进程,子进程是共享主进程的内存数据的,在完成fork后读取内存中的数据写入RDB文件,在子进程fork主进程时也是阻塞的。fork的过程中会将主进程的页表进行复制也就是将虚拟内存进行拷贝(虚拟内存可以映射到物理内存),然后通过该页表操作主进程的内存数据,此时如果在子进程RDB的过程中,主进程进行了写操作,则可能会导致脏读,为了避免脏读,此时主进程进行写操作时会话拷贝一份数据副本进行写操作【Redis】Redis持久化机制RDB与AOF

6、RDB的缺点

RDB的执行间隔时间长,两次RDB之间写入数据有丢失风险,如果在第一次写入成功后第二次RDB之前Redis宕机则这个过程的数据会丢失,而且fork子进程、压缩、写出RDB文件都比较耗时

二、AOF

1、概念

AOF全称Append Only File(追加文件),Redis处理的没有写操作命令都会记录在AOF文件中,可以看作为命令日志文件

2、开启AOF

AOF默认是关闭的。需要修改Redis的配置文件来开启

appendony yes # 开启

appendfilename “文件名“

3、触发AOF

AOF的命令记录频率也是可以通过Redis配置文件进行修改的

apppendfsync alaways # 执行一次命令立即记录到AOF文件中

apppendfsync everysec # 写命令先存入AOF缓冲区,然后每个1s将缓冲区的数据写入AOF是默认选项 

apppendfsync no #  写命令存入AOF缓冲区,由操作系统决定何时写入AOF

配置 刷盘时机 优点 缺点
alaways 同步刷盘 可靠性高,数据不易丢失 性能影响大
everysec 每秒刷盘 性能中 最多丢失1s数据
no 操作系统控制 性能最好 可靠性差,易丢失大量数据

4、触发重写AOF

AOF是记录写命令,AOF会比RDB文件大得多,而AOF会记录对一个key的多次写操作,但是只有最后一次才有意义。我们可以通过bgrewriteaoff来触发AOF文件执行重写,用最少的命令达到同样的效果,在配置文件中可以配置触发重写的规则

auto-aof-rewrite-percentage 100 # AOF文件比上次的文件增长超过多少百分比重写

auto-aof-rewrite-min-size 64mb # AOF文件体积最小多大以上触发重写

三、区别

【Redis】Redis持久化机制RDB与AOF文章来源地址https://www.toymoban.com/news/detail-477782.html

到了这里,关于【Redis】Redis持久化机制RDB与AOF的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Redis7】Redis7 持久化(重点:RDB与AOF重写机制)

    【Redis7】Redis7 持久化(重点:RDB与AOF重写机制)

     【大家好,我是爱干饭的猿,本文重点介绍Redis7 持久化(重点:RDB与AOF重写机制)。 后续会继续分享Redis7和其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】 上一篇文章:《【Redis7】Redis7 十大数据类型》 目录 🥐1. RDB(Redis Data Base) 1.1 什么是RDB 1.2 R

    2023年04月14日
    浏览(14)
  • 【Redis】持久化机制详解:从RDB到AOF,你需要知道的一切

    【Redis】持久化机制详解:从RDB到AOF,你需要知道的一切

     本文是Redis系列第2篇,其他内容欢迎移步 【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客 关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确,我们直接看官网。 https://blog.csdn.net/aqin1012/article/details/1303650

    2024年02月05日
    浏览(16)
  • redis持久化【RDB+AOF】持久化双雄

    redis持久化【RDB+AOF】持久化双雄

    这是redis系列文章之《redis持久化【RDB+AOF】持久化双雄》,上一篇文章【redis基础】redis的十大数据类型_努力努力再努力mlx的博客-CSDN博客 感谢大家的支持~ 目录 RDB 什么是RDB RDB的作用 配置文件关于RDB部分  6vs7 操作步骤 修改配置文件(本案例设置5s修改2次) 修改dump文件的保

    2024年02月08日
    浏览(33)
  • Redis两种持久化方案RDB持久化和AOF持久化

    Redis两种持久化方案RDB持久化和AOF持久化

    Redis持久化 Redis有两种持久化方案: RDB持久化 AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件

    2024年02月14日
    浏览(13)
  • 全面解析 Redis 持久化:RDB、AOF与混合持久化

    前言: 每次你在游戏中看到玩家排行榜,或者在音乐应用中浏览热门歌单,有没有想过这个排行榜是如何做到实时更新的?当然,依靠 Redis 即可做到。 在技术领域,我们经常听到 「键值存储」 这个词。但在 Redis 的世界里,这只是冰山一角。Redis 的对象,不仅仅是简单的数据

    2024年03月10日
    浏览(15)
  • redis持久化之RDB

    redis持久化之RDB

    RDB(Redis DataBase):RDB 持久性以指定的时间间隔执行数据集的时间点快照。 说人话:实现类似照片记录效果的方式,把某一时刻的数据和状态以文件的形式写到磁盘上,也就是快照,恢复时再将硬盘快照文件直接读回到内存里。 这样一来,即使故障宕机,快照文件也不会丢

    2024年02月04日
    浏览(12)
  • redis 持久化 RDB + AOF

    redis 持久化 RDB + AOF

    RDB(Redis DataBase)和AOF(Append Only File) RDB,简而言之,就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上 AOF,那就是将redis执行过的所有写指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    2024年02月03日
    浏览(14)
  • Redis 持久化-RDB和 持久化-AOF 的详细介绍以及区别

    Redis 持久化-RDB和 持久化-AOF 的详细介绍以及区别

    在线文档: https://redis.io/topics/persistence RDB(Redis DataBase) AOF(Append Of File) 在指定的时间间隔内将内存中的数据集快照写入磁盘, 也就Snapshot 快照,恢复时将快照文件读到内存 RDB 及其执行流程 对上图的解读 具体流程如下: redis 客户端执行bgsave 命令或者自动触发bgsave 命令;

    2024年02月09日
    浏览(13)
  • Redis优化 RDB AOF持久化

    Redis优化 RDB AOF持久化

    ---------------------- Redis 高可用 ---------------------------------------- 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主

    2024年02月09日
    浏览(16)
  • Redis_持久化(AOF、RDB)

    Redis_持久化(AOF、RDB)

    目前,redis的持久化主要应用AOF(Append Only File)和RDF两大机制,AOF以日志的形式来记录每个写操作(增量保存),将redis执行过的所有指令全部安全记录下来(读操作不记录)。只许追加文件,但不可以改写文件,redis启动之初,会读取该文件,重新构建数据。 AOF默认不开启

    2024年02月13日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包