### 概述
該持久化默認開啟,一次性把redis中全部的數據保存一份存儲在硬盤中(備份文件名字默認是dump.rdb,該文件自動生成),如果數據非常多(10-20G)就**不適合頻繁**進行該持久化操作。該方式默認開啟,有自己的觸發條件 .

### 自動觸發條件
該條件是在內部執行了bgsave命令.
1. save 900 1 : 900秒內如果超過1個key被修改,則發起快照保存 .
2. save 300 10 : 300秒內超過10個key被修改,發起快照.
3. save 60 10000 : 60秒內超過10000個key被修改,發起快照 .
注意:屏蔽該觸發條件,即可關閉快照方式。
該配置文件在安裝目錄的redis.conf

### 設置保存位置
備份文件文字默認是dump.rdb,我們可以自己進行修改 .在redis.conf文件中進行修改
1. dir : 目錄
2. dbfilename : 文件名

### 手動發起快照
**兩種方式完成手動保存**
**方式一**:在登錄狀態,執行save即可 . 但是save是同步的,也就是說會阻塞后面的命令.如果數據量過大,那么后面的命令將會等待很長時間. 執行save命令后,如果存在老的RDB文件,新替換老.富足度是O(N)的

**方式二**:在命令行狀態,執行bgsave . 相對于save,bgsave是fork一個子進程來存儲文件的.相對來說不會后序阻塞命令和速度更快. 文件策略和復雜度和save是相同的.

### 對比

### 缺點
1. 由于快照方式是在一定間隔做一次的,所以如果redis意外down掉的話,就會丟失最后一次快照后的所有修改,一般情況下保持默認就行了,時間間隔太短了,會造成服務器的壓力。
2. 無法主動控制存儲的時間.
### 相對最佳配置
1. 關閉自動保存;
2. 根據端口號保存rdb文件;
3. 當bgsave發生錯誤,停止;
4. 使用壓縮方式;
5. 使用數據校驗

### 觸發機制--不容忽略方式
1. 全量復制;
2. debug reload;
3. shutdow;
### RDB總結
1. RDB是Redis內存到硬盤的快照,用于持久化;
2. save通常會阻塞Redis;
3. bgsave不會阻塞Redis,但是會fork新進程;
4. save自動配置滿足任一條件就會被執行.(但是我們通常不會使用自動配置);
5. 有些觸發機制不容忽視;
### RDB存在問題
1. 耗時耗性能;
2. 不可控,容易丟失數據;
- Redis簡介
- 簡介
- 典型應用場景
- Redis安裝
- 安裝
- redis可執行文件說明
- 三種啟動方法
- Redis常用配置
- API的使用和理解
- 通用命令
- 數據結構和內部編碼
- 單線程
- 數據類型
- 字符串
- 哈希
- 列表
- 集合
- 有序集合
- Redis常用功能
- 慢查詢
- Pipline
- 發布訂閱
- Bitmap
- Hyperloglog
- GEO
- 持久化機制
- 概述
- snapshotting快照方式持久化
- append only file追加方式持久化AOF
- RDB和AOF的抉擇
- 開發運維常見問題
- fork操作
- 子進程外開銷
- AOF追加阻塞
- 單機多實例部署
- Redis復制原理和優化
- 什么是主從復制
- 主從復制配置
- 全量復制和部分復制
- 故障處理
- 開發運維常見問題
- Sentinel
- 主從復制高可用
- 架構說明
- 安裝配置
- 客戶端連接
- 實現原理
- 常見開發運維問題
- 高可用讀寫分離
- 故障轉移client怎么知道新的master地址
- 總結
- Sluster
- 呼喚集群
- 數據分布
- 搭建集群
- 集群通信
- 集群擴容
- 集群縮容
- 客戶端路由
- 故障轉移
- 故障發現
- 故障恢復
- 開發運維常見問題
- 緩存設計與優化
- 緩存收益和成本
- 緩存更新策略
- 緩存粒度控制
- 緩存穿透優化
- 緩存雪崩優化
- 無底洞問題優化
- 熱點key重建優化
- 總結
- 布隆過濾器
- 引出布隆過濾器
- 布隆過濾器基本原理
- 布隆過濾器誤差率
- 本地布隆過濾器
- Redis布隆過濾器
- 分布式布隆過濾器
- 開發規范
- 內存管理
- 開發運維常見坑
- 實戰
- 對文章進行投票
- 數據庫的概念
- 啟動多實例