1. 程式人生 > >Redis學習(8)-redis持久化

Redis學習(8)-redis持久化

配置文件 持久 部分 增刪改查 src 宕機 back 選擇 png

內存(兔子):高效,斷電數據丟失

硬盤(烏龜):讀寫速度慢於內存的,斷電數據依舊存在

持久化:把數據保存在硬盤上

關系型數據庫:MySQL-持久化:

  • 任何操作都是硬盤上,斷電以後,硬盤上數據還在。

非關系型數據庫:redis

  • 增刪改查,數據都是在內存上進行操作。
  • 斷電後內存中的數據不存在。
  • 斷電後:redis的部分數據會丟失,丟失的數據是保存在內存中的,部分保存在硬盤上
  • redis存在持久化操作

Redis兩種持久化策略:RDB,AOF

默認持久化機制:RDB

RDB:使用快照方式保存數據

RDB相當於快照,保存的僅是一種狀態。

20G數據--> 幾Kb快照

技術分享圖片

優點:

1,快照保存數據速度極快,還原數據速度極快。

2,適用於災難備份(rdb文件小,備份rdb文件速度很快)。

缺點:

RDB機制符合要求就會照快照(隨時隨地啟動),會占用一定系統資源(突然的),很可能內存不足,直接宕機(宕機後,服務器關閉,非正常關閉,內存中的數據也因此沒了)。

適用於:內存比較充裕的計算機。

RDB何時進行照快照:

1,服務器關閉時,照快照。  ./bin/redis-cli shutdown

2,key滿足一定條件,會照快照。

技術分享圖片

AOF:使用日誌功能保存數據操作

redis同步了三種同步策略:每秒同步,每修改同步,和不同步

AOF配置:

no      不同步:高效,但是不進行持久化(默認)

everysec   每秒同步:每秒進行一次AOF保存數據

always    每修改同步:只要有key變化語句,就進行AOF保存數據。

適用於:內存空間較小的計算機

AOF操作:只會保存導致key變化的語句

啟用AOF

修改redis.conf,配置文件,如下倆個截圖:

技術分享圖片

策略選擇:

技術分享圖片

優點:

1,持續性占用極少量的內存資源。

缺點:

1,日誌文件會比較大。

2,不適用於災難容災(日誌文件大,拷貝慢)

Redis學習(8)-redis持久化