rdb和aof两种持久化机制

RDB:snapshot --> 存储的格式为二进制格式,是默认的持久化方式;按事先定制的策略,周期性地将数据从内存中读取保存到磁盘:数据文件默认为dump.rdb

所以rdb保存机制有两种:

  a.客户端也可以显式使用save或bgsave命令启动快照保存机制

  b.在配置文件中使用保存策略进行保存

save:同步保存的;在主线程中保存快照,此时会阻塞所有客户端请求(如果内存中有大量数据,将会阻断客户请求的时间比较久)

bgsave:异步保存的;主进程不会被阻塞,不影响客户端的请求;在保存时会fork出一个子进程将内存中的快照写入到磁盘中;

rdb缺点:在意外关机或者断电的情况,一定会丢失数据,丢失的数据为最后一次快照后的数据

默认的保存(快照)策略

  save 900 1

  save 300 10

  save 60 10000

  save "":引号里边为空,表示关闭rdb的功能

  stop-writes-on-bgsave-error yes:当备份时发生错误是否停止,默认为yes

  rdbcompression yes:是否对rdb文件进行压缩以节约空间(压缩会消耗cpu),默认为yes

  rdbchecksum yes:是否对rdb镜像文件进行校验码检测(用于检测是否产生错误),默认为yes

  dbfilename dump.rdb:rdb的存储文件名字,默认为dump.rdb

  dir:rdb文件保存文件位置