標籤:命令 fsync sync 行資料 根據 2.3 實現 導致 丟失
1. redis作為記憶體資料庫需要儲存大量使用者的資料,但是redis中的資料儲存到記憶體中,由於斷電/宕機,肯定會導致記憶體資料丟失,為了防止資料丟失,採用持久化的方式,實現記憶體資料的備份;
當redis記憶體中有資料時,通過自身的策略有2中方式,一種是RDB模式,一種是AOF(預設);根據自身模式的設定進行資料的持久化;RDB或者AOF都有各自的持久化檔案;
當redis重啟時,會根據設定檔中指定的持久化檔案的名稱,載入持久化檔案,為了恢複記憶體的資料;
2. RDB模式:
2.1 特點:RDB模式定期將記憶體中的資料進行持久化,如果使用者允許丟失少量的資料,則首選RDB模式,因為RDB模式定期為記憶體做快照;該方式的備份的速度時很快;
2.2 備份命令:(執行redis備份命令需要在用戶端中redis-cli執行)
save(手動備份)-------會造成線程的阻塞,只有當備份操作完成時,才允許執行redis更新操作;
bgsave(後台備份)----表示後台運行,不會造成線程的阻塞,其會挑不忙的時間做資料備份;
2.3 備份方式:
save 900 1 在900秒內,redis做一次更新操作,則備份一次
save 300 10 在300秒內,redis做10次更新操作,則備份一次
save 60 10000 在60秒內,redis做10000次更新操作,則備份一次
3. AOF模式:(可以做到即時資料備份,該模式相當於通過設定檔記錄了使用者的全部操作過程);持久化檔案明文儲存,沒有加密;(AOF模式開啟後,RDB模式不生效!!!)
3.1 特點:即時的資料備份,安全性好,持久化的速度較RDB模式慢;
AOF持久化檔案的體積很大;當資料恢複時,需要消耗很長的時間;
3.2 AOF持久化策略:
appendfsync always----------每次操作都會備份
appendfsync everysec-------每秒備份一次
appendfsync no----------------不做操作
redis持久化策略