redis持久化策略
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持久化策略