Redis的RDB持久化(持续更新)

别等时光非礼了梦想. 提交于 2019-12-28 22:11:58

1.redis持久化的方式有两种:RDB 和 AOF

 

RDB:类似于linux的快照,在某个时间点备份 临时文件 。

是把当前内存中的数据集快照写入磁盘,也就是 Snapshot 快照(数据库中所有键值对数据)。恢复时是将快照文件直接读到内存里。

 

 

 

  优点:1.每隔一段时间备份,全量备份

             2.灾备简单,可以远程传输

             3.子进程进行备份时,主线程不会有任何io操作(不会有写入修改或删除),保证备份数据的完整性

            4.相对于AOF来说,当有更大文件的时候,就可以快速重启恢复

 

缺点:1.发生故障时,有可能会丢失最后一次的备份数据

           2.子进程所占用的内存会和父进程一样,造成CPU负担

          3.由于定时全量备份是重量级的操作,所以对于实时备份,就无法处理

     自动触发模式:

 

 

找到: SNAPSHOTTING(快照)

 

接着往下找;

 

dir:就是定义的RDB所保存的位置,

保存在磁盘的名称 就是 dump.rdb

 

这就是 dump.rdb

 

 

 

回到 redis.conf:

保存 更改时间  发生的更改次数

如果发生了 一次更改,则在15分钟后进行备份(保存快照),

如果至少发生了10次更改,则在5分钟后进行备份(保存快照)

 

 

如果在保存的过程中发生错误,yes就是停止写的操作。

no继续保存(会造成数据不一致)

 

 

stop-writes-on-bgsave-error :默认值为yes。当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据。这会让用户意识到数据没有正确持久化到磁盘上,否则没有人会注意到灾难(disaster)发生了。如果Redis重启了,那么又可以重新开始接收数据了

rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩,会消耗CPU性能,但是现在企业的云盘性能一般都有剩余,所以不是大问题。

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!