#### 1.什么是RDB?
```
RDB:每隔一段時間,把內存中的數據寫入磁盤的臨時文件,作為快照,恢復的時候把快照文件讀進內存。如果宕機重啟,那么內存里的數據肯定會沒有的,那么再次啟動redis后,則會恢復。
```
#### 2.備份與恢復
```
內存備份 --> 磁盤臨時文件
臨時文件 --> 恢復到內存
```
#### 3.RDB優缺點
```
* 優勢
1. 每隔一段時間備份,全量備份
2. 災備簡單,可以遠程傳輸
3. 子進程備份的時候,主進程不會有任何io操作(不會有寫入修改或刪除),保證備份數據的的完整性
4. 相對AOF來說,當有更大文件的時候可以快速重啟恢復
* 劣勢
1. 發生故障是,有可能會丟失最后一次的備份數據
2. 子進程所占用的內存比會和父進程一模一樣,如會造成CPU負擔
3. 由于定時全量備份是重量級操作,所以對于實時備份,就無法處理了。
```
#### 4. RDB文件存儲位置(默認采用RDB存儲方式)
```
1. 保存位置,可以在redis.conf自定義:
/user/local/redis/working/dump.rdb
2. 保存機制:
save 900 1
save 300 10
save 60 10000
* 如果1個緩存更新,則15分鐘后備份
* 如果10個緩存更新,則5分鐘后備份
* 如果10000個緩存更新,則1分鐘后備份
```
#### 5.常用配置(redis.conf)
```
stop-writes-on-bgsave-erro
* yes:如果save過程出錯,則停止寫操作
* no:可能造成數據不一致
rdbcompression
* yes:開啟rdb壓縮模式
* no:關閉,會節約cpu損耗,但是文件會大
rdbchecksum
* yes:使用CRC64算法校驗對rdb進行數據校驗,有10%性能損耗
* no:不校驗
```
#### 6.總結
```
RDB適合大量數據的恢復,但是數據的完整性和一致性可能會不足
```