Redis 两种持久化方式

1、RDB方式

2、AOF方式

 

1、RDB持久化

默认支持,不许用配置

在指定的之间间隔内,将内存中的数据集快照写入到磁盘

(如:指定30s将数据向磁盘中写入一次)

 

2、AOF持久化

以日志的方式记录服务器处理的每一个操作,在redis服务器启动之初,会读取该文件并进行重新构建数据库,保证启动后数据库中的数据时完整的。

 

3、无持久化

通过配置实现 ,会认为redis是一个缓存机制。

 

4、同时使用RDB和AOF

 

 

持久化方式详解

1、RDB

优势:

1、通过归档文件备份数据,在发生丢失时使用。

2、将一个单独的文件压缩后轻松的转移到其他的存储介质上。

3、性能最大化,在持久化开始时,只需要分叉出一些进程,再由子进程完成持久化工作,极大地避免进程执行IO的操作。

 

相比AOF,数据集较大时,这种方式启动效率更高。

 

缺点:

1、保证不了数据的高可用(来不及将数据写入磁盘)。

2、数据集较大时,子进程分担工作,进程会停止或延时。

 

2.AOF持久化方式

优势:

1、更高的数据安全性

2、日志存贮采用append追加方式,不会损害原来的日志文件(redis-check-aof.exe:解决数据一致性问题)

3、包含格式清晰的记录所有操作的日志文件

 

缺点:

1、相同的数据集,AOF的文件比RDB的文件大

2、效率低于RDB(每次修改就同步到硬盘)

 

flashall : 清空数据库

将appendonly.conf 日志中的操作志林flashall删除,保存退出并重启

查询数据库,数据全部存在(日志中的flashall指令不存在,所以数据全部回来了)