我們也可以將redis持久化關閉,關閉以後可以將redis看成一個緩存.用作緩存
還可以同時使用 RDB和AOF 兩種方式保證數據持久化,使數據更完整
優點:
- 可將數據庫保存爲一個文件,便於備份
- 可方便移植
- 性能最大化,可開啓小的進程處理持久化操作
缺點:
- 不能保證數據完整性,例如在下一次保存快照之前宕機了,那麼這部分的數據可能就丟失了。
- 持久化需要fork一個子進程來處理,當數據過大這將會延遲幾百到一千毫秒
配置過程:
- 編輯redis.conf文件:vim redis.conf
- 找到時間戳, save <seconds> <changes>
save 900 1:900s之內鍵值發生1次改變則執行持久化
save 300 10:300s之內鍵值發生10次改變則執行持久化
save 60 100000:60s之內鍵值發生100000次改變則執行持久化 - 所有的數據默認保存在rdb文件中,rdb文件默認保存在redis安裝目錄
AOF:
優點:
- 同步寫入頻率高,效率低,方式最安全.
- 寫入模式採用append模式,追加模式, 不破壞寫入日誌數據,在redis中追加也不會破壞文件.如果在寫入一半的時候出現熊崩潰問題,redis下次啓動之前通過 redis-check-aof這個工具來幫助數據一致性問題
- 當數據過大,可啓動修改重寫機制,redis採用append的這種機制,將新的修改的數據不斷地寫到老的磁盤文件當中,同時創建新的文件保存操作,保證修改數據的更新
- 日誌文件格式清晰,便於重建數據
缺點:
- 對於相同數據集aof文件比rdb文件大一些
- 根據同步策略不同,效率比rbd低.
配置過程:
- 編輯redis.conf:vim redis.conf
- 找到appendonly,需要改成yes(因爲默認使用rdb方式所以默認爲no),同時還需要在下面配置同步策略:
- Appendfsync always::修改一次就同步到磁盤上(安全性最高)
- Appendfsync everysec:每秒會向硬盤中同步一次
- Appendfsync no:不同步到硬盤中
- Redis的目錄下會產生appendonly.aof這個文件,用來保存appendonly的之前的增刪改操作,
- 停掉redis ./bin/redis-cli shutdown
- 重啓redis ./bin/redis-servers ./redis.conf
- flushall清空數據庫
- 進入appendonly.aof刪除flushall可以恢復數據庫