复述,持久化RDB和AOF的区别有什么

  介绍

这篇文章将为大家详细讲解有关复述,持久化RDB和AOF的区别有什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

RDB是复述,内存到硬盘的快照,用于复述,持久化,创建RDB二进制文件,将存储在内存中的数据,持久化的放到硬盘中,当我们需要这些数据的时候,启动载入RDB文件,数据将会被存入内存中,其实RDB就是一种快照的方式持久化存储数据,也可以作为一种复制媒介,这个我们后面在谈。

<强> RDB

触发机制,主要三种方式

    <李>保存同步命令(会阻塞复述) <李> bgsave异步命令(叉) <李>自动李

保存同步命令

保存文件策略:生成一个临时文件,如果存在老的文件,将会替换旧文件

复述,持久化RDB和AOF的区别有什么

bgsave异步命令

主进程通过fork()函数,创建子进程生成DRB文件,在此期间访问复述,仍然能正常响应

复述,持久化RDB和AOF的区别有什么

命令savebgsaveIO同步异步阻塞阻塞阻塞(操作不当叉阻塞)优点不额外占用内存不阻塞客户端命令缺点阻塞客户端命令需要叉,额外消耗内存

复述,自动生成RDB文件(不可控)

节省900 1 # 900秒改了一次就自动生成RDB文件
节省300 10 # 300秒修改了10次就自动生成RDB文件

复述,节省配置推荐

 #关闭自动保存配置#节省900 1 # 900秒改了一次就自动生成RDB文件#节省300 10 # 300秒修改了10次就自动生成RDB文件
  dbfilename转储- ${港口}。rdb # rdb文件名
  dir/bigdiskpath #分盘,rdb文件保存位置
  stop-writes-on-bgsave-error是的# bdsave出错,停止写入
  rdbcompression是的#采用压缩位置
  rdbchecksum是的#开启校验和

不容忽视的触发机制

有时候我们没有执行保存bgsave命令,也没有开启自动保存命令,还是会生成RDB,可能是因为以下原因:

    <李>全量复制李 <李>调试重载
    <李>关闭   李,

<强> AOF

RDB存在的问题:耗时耗性能,阻塞丢失数据

AOF运行原理:每执行一条命令,就在AOF中增加一条记录。当需要恢复时,直接执行AOF写入复述,

AOF三种策略

    <李>总是(每条命令都把缓冲区fsync到硬盘) <李> everysec(每秒刷新一次,每秒吧缓冲区fsync到硬盘) <李>没有(跟随操作系统,有操作系统决定,不可控)
命令alwayseverysecno优点不丢失数据每秒一次不用管缺点IO开销大丢失一秒数据不可控

AOF重写

将过期的,重复的,做一些优化合并

作用:减少磁盘空间占用,加快文件恢复速度

复述,持久化RDB和AOF的区别有什么

AOF重写两种方式:

bgrewriteaof

AOF重写配置

复述,持久化RDB和AOF的区别有什么

AOF重写配置

auto-aof-rewrite-min-size # AOF重写需要的最小尺寸
auto-aof-rewrite-percentage # AOF文件增长率
aof_current_size #统计当前AOF文件大小
aof_base_size # AOF上次启动和重写的尺寸

复述,持久化RDB和AOF的区别有什么

AOF配置

复述,持久化RDB和AOF的区别有什么

RDB和AOF的比较

复述,持久化RDB和AOF的区别有什么

关于复述,持久化RDB和AOF的区别有什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

复述,持久化RDB和AOF的区别有什么