Redis數據庫備份與恢復

Redis全部數據都是保存在內存中。下面講述三種備份方式:redis

1.按期地經過異步方式保存到磁盤上,該方式稱爲半持久化模式。數據庫

1)半持久化RDB模式也是Redis備份默認方式,是經過快照完成的,當知足redis.conf配置文件中設置的相關條件時,Redis會自動將內存中的全部數據進行快照並存儲在硬盤上,完成數據備份。vim

2)RDB快照的條件由用戶在redis.conf配置文件中自定義,由時間和改動的關鍵字數來肯定,當在指定的時間內被更改的鍵的個數大於指定的數值時就會時進行快照。如下是預置的3個條件,只要知足其中一個條件,就會進行快照。安全

save 900 1 #刷新快照到硬盤中,必須知足二者要求才會觸發,即900秒以後至少1個關鍵字發生變化。
save 300 10 #必須是300秒以後至少10個關鍵字發生變化。
save 60 10000 #必須是60秒以後至少10000個關鍵字發生變化。
服務器

3)若是禁用自動快照,將全部save參數刪除或註釋便可。app

4)獲取redis數據保存的路徑:異步

127.0.0.1:6379> config get diride

"dir"測試

"/usr/local/redis/bin"spa

5)建議修改數據保存路徑: # vim redis.conf 

dir ./  #默認所在安裝的目錄

dir /data/redis   #修改爲新的路徑

操做技能:要先建立好保存路徑,配置文件纔會生效,不然會宕掉redis服務

[root@redis_master /]# mkdir -p /data/redis 

6)測試修改數據存放效果

127.0.0.1:6379> config get dir

 "dir"

"/data/redis"

7)RDB方式實現持久化,一旦Redis異常退出,就會丟失最後次快照之後更改的全部數據。
2.全持久化AOF模式

1)若是數據很重要,不能損失任數據,能夠考慮使用AOF方式進行持久化,默認Redis沒有開啓AOF方式的全持久化模式。

2)容許同時開啓AOF和RDB,即保證了數據安全又使得進行備份等操做十分容易。

3)參數配置詳解:

appendonly yes #開啓AOF持久化功能

appendifilename appendonly.aof #保存文件名

appendfsync always #每次執行寫入都會執行同步,最安全也最慢

auto-aof-rewirte-percentage 100 #參數的意義時當目前的AOF文件大小超過上一次AOF重寫時的文件大小的百分之多少時會再次進行重寫,若是以前沒有重寫過,則以啓動時的AOF文件大小爲依據。

auto-aof-rewrite-min-size 64MB #限制容許重寫的AOF文件最小的大小。

appendsync everysec  #每秒執行一次同步操做。

appendsync no  #不主動進行同步操做,每30s一次,最快也不最安全。

3.Redis主從複製備份

1)經過持久化功能,保證了即便服務器重啓的狀況下也不會損失或少許損失數據。可是因爲數據是存儲在一臺服務器上的,若是這臺服務器的硬盤出現故障,也會致使數據丟失。

2)爲了不單點故障,將數據庫複製多個副本以部署在不一樣的服務器上,即便有一臺服務器出現故障其餘服務器依然能夠繼續提供服務,這就要求當一臺服務器上的數據庫更新後,能夠自動將更新的數據同步到其餘服務器上。

3)能夠基於主從同步實現讀寫分離以提升服務器的負載能力。

4)主數據庫只進行操做,而從數據庫負責讀操做。

5)能夠基於LVS+keepalived對Redis實現均衡和高可用。

6)主庫崩潰時能夠降爲從庫,從庫也能夠升級成爲主庫。

相關文章
相關標籤/搜索