#RDB AOF 持久化策略
-
RDB 按照时间点,将某个时间点的时候,内存中的数据储存在硬盘上,但是有可能丢数据
-
AOF
AOF是先把数据存放在缓存区,然后根据不同的缓存设定,设置好比如每秒一次,每个命令一次,或者等等这种从缓存区然后拉数据到磁盘的行为。
将写命令添加到 AOF 文件(Append Only File)的末尾。
使用 AOF 持久化需要设置同步选项,从而确保写命令什么时候会同步到磁盘文件上。这是因为对文件进行写入并不会马上将内容同步到磁盘上,而是先存储到缓冲区,然后由操作系统决定什么时候同步到磁盘。有以下同步选项:
选项 | 同步频率 |
---|---|
always | 每个写命令都同步 |
everysec | 每秒同步一次 |
no | 让操作系统来决定何时同步 |
always | 选项会严重减低服务器的性能; |
everysec | 选项比较合适,可以保证系统崩溃时只会丢失一秒左右的数据,并且 Redis 每秒执行一次同步对服务器性能几乎没有任何影响; |
随着服务器写请求的增多,AOF 文件会越来越大。Redis 提供了一种将 AOF 重写的特性,能够去除 AOF 文件中的冗余写命令。