redis的持久化機制
Redis提供兩種持久化機制,一種RDB持久化(預設)
另一種是AOF(append only file)持久化。
RDB是什麼?
原理是redis會單獨建立(fork)一個與當前程式一模一樣的子程式來進行持久化,這個子程式的所有資料(變數,環境變數,程式計數器等)都和原程式一模一樣,會先將資料寫入到一個臨時檔案中,待持久化結束了,再用這個臨時檔案替換上次持久化好的檔案,整個過程中,主程式不進行任何的io操作,這就確保了極高的效能。
1.1這個持久化檔案在哪裡?
持久化檔案:dump.rdb在redis.conf配置檔案中定義的;一般情況下我們會給定一個檔案儲存。
dir ./ 當前資料夾,所以dump.rdb就會在myredis資料夾下生成;如果在不同的檔案下生成dump.rdb ,eg:第一次在myredis檔案下生成的dump.rdb下有10萬條資料,第二次啟動的時候在opt資料夾下啟動,opt檔案下會生成新的dump.rdb檔案,這個時候檔案是空的,這種情況下容易造成資料丟失,為了防止資料丟失,在dir 下指定檔案eg:dir /myredis(自行指定)
1.2他什麼時候fork子程式,或者什麼時候觸發rdb持久化機制
1.2.1shutdown時,如果沒有開啟aof,會觸發。(正常操作可以,)
1.2.2配置檔案中預設的快照配置
900秒中,redis增刪改操作是否有1次,只要有一次就觸發rdb持久化機制
300秒鐘,redis增刪改操作是否有10次,只要總和有超過10次就觸發rdb持久化機制
60秒鐘,redis增刪改操作是否有10000次,只要總和超過10000次就觸發rdb持久化機制
1.2.3執行命令save(主程式)或者bgsave ,save是隻管儲存,其他不管,全部阻塞; bgsave:redis會在後臺非同步進行快照操作,同時可以響應客戶端的請求執行flushall命令,但是裡面是空的,無意義。
bgsave是專門做持久化的,持久化結束,這個程式也就結束。
2.AOF是什麼?預設是關閉的。redis.conf配置檔案中修改appendonly yes
擴充:快速定位;vim redis.conf開啟檔案後,直接 /,之後輸入需要搜尋到的值,eg:/append; 按回車,游標找到所有的指定的字元 ,按 n 按鈕是下一個。
原理是將Redis的操作檔案以追加的方式寫入檔案,讀操作是不記錄的
2.1這個持久化檔案在哪裡?
與rdb的持久化檔案一樣,都在redis.conf中dir ./檔案下配置
2.2觸發機制(根據配置檔案配置項)
no:表示等作業系統進行資料快取同步到磁碟(快,持久化沒保證)
always:同步持久化,每次發生資料變更時,立即記錄到磁碟(慢,安全)
everysec:表示每秒同步一次(預設值,很快,但可能會丟失一秒以內的資料)
總結:
1.redis提供了RDB持久化方案,為什麼還要AOF?
優化資料丟失問題,rdb會丟失最後一次快照的資料,AOF丟失不會超過2秒的資料。
2.如果AOF和RDB同時存在,聽誰的?
AOF
3.RDB和AOF優勢劣勢?
RDB適合大規模的資料恢復,對資料完整性和一致性不高,在一定間隔時間做一次備份,如果Redis意外down掉的話,就會丟失最後一次快照後的所有操作。
AOF根據配置項而定
官方建議,兩種持久化機制同時開啟,如果兩個同時開啟,優先使用AOF持久化機制。
相關文章
- Redis持久化機制Redis持久化
- redis的持久化機制 (RDB&AOF)Redis持久化
- Redis系列(三):Redis的持久化機制(RDB、AOF)Redis持久化
- 深入剖析Redis RDB持久化機制Redis持久化
- Redis的持久化機制你學會了嗎Redis持久化
- redis的RDB和AOF兩種持久化機制Redis持久化
- 深入理解Redis的持久化機制和原理Redis持久化
- 淺談:Redis持久化機制(二)AOF篇Redis持久化
- 淺談:Redis持久化機制(一)RDB篇Redis持久化
- 一文深度揭祕Redis的磁碟持久化機制Redis持久化
- Redis 學習筆記(四)RDB 和 AOF 持久化機制Redis筆記持久化
- Redis 的持久化Redis持久化
- Redis的持久化Redis持久化
- redis個人原始碼分析筆記5---RDB持久化機制Redis原始碼筆記持久化
- Redis 持久化Redis持久化
- Redis - 持久化Redis持久化
- redis持久化Redis持久化
- 徹底搞懂Redis持久化機制,輕鬆應對工作面試Redis持久化面試
- Redis的持久化方案Redis持久化
- Redis的持久化方式Redis持久化
- Redis的持久化策略Redis持久化
- Redis資料持久化—RDB持久化與AOF持久化Redis持久化
- Redis的兩種持久化方式-快照持久化(RDB)和AOF持久化Redis持久化
- 北京大公司二面:瞭解Redis持久化機制嗎?Redis持久化
- 深度剖析Redis6的持久化機制(大量圖片說明,簡潔易懂)Redis持久化
- redis ——AOF持久化Redis持久化
- Redis 持久化方案Redis持久化
- redis 之 持久化Redis持久化
- Redis:持久化篇Redis持久化
- Redis 持久化(Persistence)Redis持久化
- redis-持久化Redis持久化
- Redis 七 持久化Redis持久化
- redis持久化策略Redis持久化
- Redis之持久化Redis持久化
- redis之 Redis持久化配置Redis持久化
- redis系列:RDB持久化與AOF持久化Redis持久化
- Redis的持久化設計Redis持久化
- Redis的資料持久化Redis持久化