Redis数据持久化

一、RDB
     RDB持久化是通过快照完成的,当符合一定条件时Redis会自动将内存中所有数据生成一份副本并存储在硬盘上,这一过程即为快照。Redis会在以下几种情况对数据进行快照。
     1、根据配置进行自动快照
     配置文件中预置了3个条件
     save 900 1
     save 300 10
     save 60 10000
     各个条件是或的关系,当在多长时间之内更改了大于n个键,即符合快照条件
     2、用户执行SAVE或BGSAVE命令
     SAVE:数据较多时,会导致较长时间不响应
     BSAVE:在后台异步进行快照,不影响来自客户端的请求。用LASTSAVE命令获取最近一次成功执行快照的时间
     3、执行FLUSHALL命令
     执行FLUSHALL会清除所有数据,不论是否触发了自动快照条件,只要自动快照条件不为空,就会执行一次快照操作。
     4、执行复制时
二、AOF方式
     AOF可以将Redis执行的每一条命令追加到磁盘中的AOF文件当中。
     1、开启:appendonly  yes
               auto-aof-rewrite-percentage  100     目前的AOF文件大小超过上一次重写时的AOF文件大小的百分比时会再次进行重写
               auto-aof-rewrite-min-size  64mb     限制了允许重写的最小AOF文件大小
     2、同步硬盘
     由于操作系统的缓存机制,数据并没有真正写入硬盘,而是在硬盘的缓存当中,默认情况下系统每30秒会执行一次同步操作,系统异常退出会导致数据丢失,AOF应该主动要求将缓存同步到硬盘。
     appendfsync always     每次执行写入都会执行同步
     appendfsync everysec     第秒执行同步
     appendfsync no     由操作系统来作同步(30秒)

     
     

你可能感兴趣的:(Redis)