《Redis持久化RDB和AOF實戰》要點:
本文介紹了Redis持久化RDB和AOF實戰,希望對您有用。如果有疑問,可以聯系我們。
Redis可以同時開啟RDB和AOF兩種持久化模式,Redis默認是只開啟RDB,當Redis重啟時,它會優先使用AOF文件來還原數據集
什么時候會觸發redis生成快照(生成RDB文件)
# Save the DB on disk:
[root@localhsot redis]# redis-check-rdb --fix dump.rdb
打開配置文件,在Windows上,如:redis.windows.conf
1、將appendonly no 設置為
appendonly yes
2、將appendfsync設置為everysec,默認已經打開
appendfsync everysec
AOF會將服務器執行的所有寫操作命令記錄到這個文件,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 100auto-aof-rewrite-min-size 64mb
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實戰》討論,分享您的想法,維易PHP學院為您提供專業教程。