redis 備份數據持久化

即把數據保存到可永久保存的存儲設備中(如磁盤)。

1、redis持久化 – 兩種方式
一、redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。
======================================================================================
RDB(Redis DataBase):是在不同的時間點,將redis存儲的數據生成快照並存儲到磁盤等介質上;
特點:
1.週期性
2.不影響數據寫入  #RDB會啓動子進程,備份所有數據。當前進程,繼續提供數據的讀寫。當備份完成,才替換老的備份文件。
3.高效     #一次性還原所有數據
4.完整性較差 #故障點到上一次備份,之間的數據無法恢復。
======================================================================================
AOF(Append Only File)則是換了一個角度來實現持久化,那就是將redis執行過的所有寫指令記錄下來,在下次redis重新啓動時,只要把這些寫指令從前到後再重複執行一遍,就可以實現數據恢復了。
特點:
1.實時性
2.完整性較好
3.體積大  #記錄數據的指令,刪除數據的指令都會被記錄下來。
=======================================================================================
二、RDB和AOF兩種方式也可以同時使用,在這種情況下,如果redis重啓的話,則會優先採用AOF方式來進行數據恢復,這是因爲AOF方式的數據恢復完整度更高。
三、如何選擇方式?
緩存:不用開啓任何持久方式
雙開:因RDB數據不實時,但同時使用兩者時服務器只會找AOF文件,所以RDB留作以防萬一的手段。
官方的建議是兩個同時使用。這樣可以提供更可靠的持久化方案。
寫入速度快 ------------AOF
寫入速度慢 ------------RDB

2、持久化配置

1、RDB默認開啓:
[root@redis-master src]# cd ..
[root@redis-master redis]# vim redis.conf
#dbfilename:持久化數據存儲在本地的文件
dbfilename dump.rdb
#dir:持久化數據存儲在本地的路徑
dir /data/application/redis/data
##snapshot觸發的時機,save <seconds> <changes> 
##如下爲900秒後,至少有一個變更操作,纔會snapshot  
##對於此值的設置,需要謹慎,評估系統的變更操作密集程度  
##可以通過save “”來關閉snapshot功能  
#save時間,以下分別表示更改了1個key時間隔900s進行持久化存儲;更改了10個key300s進行存儲;更改10000個key60s進行存儲。
save 900 1
save 300 10
save 60 10000 
##yes代表當使用bgsave命令持久化出錯時候停止寫RDB快照文件,no表明忽略錯誤繼續寫文件,“錯誤”可能因爲磁盤已滿/磁盤故障/OS級別異常等  
stop-writes-on-bgsave-error yes
##是否啓用rdb文件壓縮,默認爲“yes”,壓縮往往意味着“額外的cpu消耗”,同時也意味着較短的網絡傳輸時間  
rdbcompression yes 
注意:每次快照持久化都是將內存數據完整寫入到磁盤一次,如果數據量大的話,而且寫操作比較多,必然會引起大量的磁盤io操作,可能會嚴重影響性能。

3、AOF默認關閉–開啓
[root@redis-master src]# cd …
[root@redis-master redis]# vim redis.conf
修改如下:
在這裏插入圖片描述

1、此選項爲aof功能的開關,默認爲“no”,可以通過“yes”來開啓aof功能,只有在“yes”下,aof重寫/文件同步等特性纔會生效
====================================
2、指定aof文件名稱
appendfilename appendonly.aof  
====================================
3、指定aof操作中文件同步策略,有三個合法值:always everysec no,默認爲everysec
appendfsync everysec  
always     #每次有數據修改發生時都會寫入AOF文件。
everysec  #每秒鐘同步一次,該策略爲AOF的缺省策略
no          #從不同步。高效但是數據不會被持久化

開啓持久化功能後,重啓redis後,數據會自動通過持久化文件恢復

拓展RDB快照備份恢復:

redis數據庫備份與恢復(dump.rdb快照方式),兩臺機器

拓展RDB快照備份恢復:

redis數據庫備份與恢復(dump.rdb快照方式),兩臺機器
拓展RDB快照備份恢復:

redis數據庫備份與恢復(dump.rdb快照方式),兩臺機器

恢復數據的機器:
修改redis.conf配置文件
在這裏插入圖片描述

將dump.rdb數據文件存放到配置文件制定的目錄下,直接啓動即可
[root@redis-master redis]# src/redis-server redis.conf &
[root@redis-master redis]# src/redis-cli

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章