五. Redis持久化

Redis是一個支持可持久化的內存數據庫,也就是說Redis能夠將數據保存到硬盤當中。redis

目前Redis支持兩種持久化方式:數據庫

1. snapshotting 快照方式(默認方式)。緩存

2. append-only  file (縮寫AOF)的方式。app

 

區別:快照方式是將數據存到文件裏面,AOF是將 INSERT,UPDATE,DELETE操做存到文件裏面。函數

 

快照持久化性能

快照持久化是redis默認的持久化方式。這種方式是將內存中數據以快照的方式寫入二進制文件中,默認的文件名爲dump.rdb。redis提供了快照持久化的設置方式。spa

打開 redis.conf 文件:內存

save 900 1    表示900秒內若是超過1個key被修改,則發起快照保存it

save 300 10  表示300秒內若是超過10個key被修改,則發起快照保存配置

save 60 10000   表示60秒內若是超過10000 個key被修改,則發起快照保存

弊端: 快照方式是在必定間隔時間作一次,因此若是Redis意外掛掉的話,就會丟失最後一次快照後的全部修改。

 

AOF持久化

AOF比快照方式有更好的持久化性,是因爲在使用AOF時,redis會將每個收到寫命令都經過write函數追加到文件中,當redis重啓時會經過從新執行文件中保存的寫命令來重建整個數據庫內容。

固然因爲os會在內核中緩存write作的修改,因此可能不是當即寫到磁盤上。這樣aof方式的持久化仍然仍是可能會丟失部分修改。

咱們能夠經過配置文件告訴redis咱們想要經過fsync函數強制os寫入到硬盤的時機。

步驟:

1. 修改 redis.conf 文件中 appendonly 項,設置爲 appendonly no

2. 配置 appendfsync 項(三選一)

  appendfsync always  (收到命令就當即寫入磁盤,最慢,可是保證最徹底的持久化)  appendfsync everysec  (每秒鐘寫入磁盤一次,在性能和持久化方面作了最好的折中)  appendfsync no      (徹底依賴os,性能最好,持久化方面沒保證)

相關文章
相關標籤/搜索