Redis持久化RDB和AOF實戰

NoSQL Redis Windows 技術 大話全棧開發 2017-04-03

Redis持久化RDB和AOF實戰

概括

Redis可以同時開啟RDB和AOF兩種持久化模式,Redis默認是隻開啟RDB,當Redis重啟時,它會優先使用AOF文件來還原數據集

什麼時候會觸發redis生成快照(生成RDB文件)

# Save the DB on disk:

Redis持久化RDB和AOF實戰

修復rdb文件

[root@localhsot redis]# redis-check-rdb --fix dump.rdb

開啟AOF持久化

打開配置文件,在Windows上,如:redis.windows.conf

1、將appendonly no 設置為

appendonly yes

2、將appendfsync設置為everysec,默認已經打開

appendfsync everysec

AOF會將服務器執行的所有寫操作命令記錄到這個文件,aof是一個增量文件

問題:重啟redis之後,開啟AOF之前已有的數據將會丟失

說明

說明:服務器上redis以前只開啟了RDB,現在要同時開啟RDB和AOF
因為AOF只記錄在AOF開啟之後的寫操作命令,如果在開啟AOF之前Redis已經有數據,那麼,appendonly.aof中就不會有開啟AOF之前執行過的寫操作命令,

解決辦法

動態的開啟AOF,在redis-cli裡面執行如下命令,開啟AOF持久化

127.0.0.1:6379> config set appendonly yes

當我們執行了上面命令之後,redis會自動創建appendonly.aof文件,並將內存中的數據以aof文件的格式寫入appendonly.aof

還可以主動觸發來重寫aof文件

127.0.0.1:6379> bgrewriteaof

aof文件損壞導致redis啟動失敗

我們可以用redis-check-aof工具來修復aof文件,先將aof文件備份

[root@localhsot redis]# cp appendonly.aof appendonly.aof.bak[root@localhsot redis]# redis-check-aof --fix appendonly.aof

重要配置參數講解

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

rewrite觸發機制

redis會記錄上一次重寫時aof文件的大小,默認配置是當aof文件大小是上次rewrite後大小的一倍且文件大於64mb時觸發。

參考文檔

持久化(persistence) http://redisdoc.com/topic/persistence.html

【Redis源碼剖析】 - Redis持久化之AOF http://blog.csdn.net/xiejingfa/article/details/51644390

http://www.cnblogs.com/hjy9420/p/6076018.html

Redis持久化RDB和AOF實戰

相關推薦

推薦中...