概括
Redis可以同時開啟RDB和AOF兩種持久化模式,Redis默認是隻開啟RDB,當Redis重啟時,它會優先使用AOF文件來還原數據集
什麼時候會觸發redis生成快照(生成RDB文件)
# Save the DB on disk:
修復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
相關推薦
'3分鐘學會內網穿透,nps詳細實戰圖文教程'
"nps是一款輕量級、功能強大的內網穿透代理服務器。nps支持tcp、udp流量轉發,支持內網http代理、內網socks5代理,同時支持snappy壓縮、站點保護、加密傳輸、多路複用、header修改等。nps支持web圖形化管理,集成多用戶模式。 運行環境:1.服務端:...
'後端開發都應該掌握的Redis基礎'
"原文作者:張君鴻juejin.im/post/5d078cd6f265da1b8466e62cRedis的數據結構Redis支持多種不同的數據結構,包括5種基礎數據結構和幾種比較複雜的數據,這些數據結構可以滿足不同的應用場景。五種基礎數據結構String:字符串,是構建其...
'Redis:Redis數據持久化,及實現方式'
"我們的Redis必須使用數據持久化嗎?如果我們的Redis服務器只作為緩存使用,Redis中存儲的所有數據都是從其他地方同步過來的備份,那麼就沒必要開啟數據持久化的選項。Redis提供了將數據定期自動持久化至硬盤的能力,包括RDB和AOF兩種方案,兩種方案分別有其長處和短...
'企業網絡組建實戰第二篇之終章--華為防火牆配置點到點IPSec隧道'
"今天是筆者入駐頭條20天整,也是企業組網實戰第二篇的第七章——終章的發佈之日,所以也算是一個小結,希望有興趣的網友關注一下、寫個簡短的評論更好,給筆者一些繼續寫下去的信心,謝謝!華為稱之為點到點的IPSec隧道,其實就是通過IPSec協議,把兩端的防火牆通過隧道的方式,在...
'使用Redis實現延時任務'
"前提最近在生產環境剛好遇到了延時任務的場景,調研了一下目前主流的方案,分析了一下優劣並且敲定了最終的方案。這篇文章記錄了調研的過程,以及初步方案的實現。候選方案對比下面是想到的幾種實現延時任務的方案,總結了一下相應的優勢和劣勢。 如果應用的數據量不高,實時性要求比較低,選...
'在SpringBoot中添加Redis,竟然能有這種效果'
"前言在實際的開發中,會有這樣的場景。有一個微服務需要提供一個查詢的服務,但是需要查詢的數據庫表的數據量十分龐大,查詢所需要的時間很長。 此時就可以考慮在項目中加入緩存。引入依賴在maven項目中引入如下依賴。並且需要在本地安裝redis。<dependency>...
推薦中...