> 由于Redis的數據都存放在內存中,如果沒有配置持久化,redis重啟后數據就全丟失了,于是需要開啟redis的持久化功能,將數據保存到磁 盤上,當redis重啟后,可以從磁盤中恢復數據。redis提供兩種方式進行持久化。
Redis持久化有兩種方式:`RDB(快照模式)`、`AOF(追加模式)`。
## AOF持久化 (目前主流的用法)
AOF持久化:**以獨立日志的方式記錄每次寫命令**,刪除操作,查詢操作不會記錄,以文本的方式記錄,可以打開文件看到詳細的操作記錄, 重啟時再重新執行AOF文件中的命令達到恢復數據的目的。AOF的主要作用 是解決了數據持久化的實時性,目前已經是Redis持久化的主流方式。
**主要特點**:
* Append only file,采用追加的方式保存,默認文件為appendonly.aof;
* 記錄所有的**寫操作命令**,在服務啟動的時候**重演這些命令**就可以還原數據庫;
* AOF默認關閉,需要在配置文件中手動開啟。
開啟AOF:
~~~
redis 127.0.0.1:6379> config set appendonly yes
OK
~~~
## RDB持久化
RDB持久化**是在指定的時間間隔內把當前進程數據生成快照保存到硬盤的過程**,實際操作過程是fork一個子進程,先將數據集寫入臨時文件,寫入成功后,再替換之前的文件,用二進制壓縮存儲。觸發RDB持久化過程分為手動觸發和自動觸發。
手動觸發:
~~~
redis 127.0.0.1:6379> save
OK
~~~
自動觸發:
~~~
127.0.0.1:6379> bgsave
Background saving started
~~~