redis的持久化存储,RDB与AOF
生活随笔
收集整理的這篇文章主要介紹了
redis的持久化存储,RDB与AOF
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
redis持久化存儲支持兩種方式:RDB和AOF。RDB一定時間取存儲文件,AOF默認每秒去存儲歷史命令,官方建議兩種方式同時使用 沒有持久化的redis和memcache一樣,相當于一個純內存的數據庫 一、RDB(Redis DataBase) RDB是將數據寫入一個臨時文件,持久化結束后,用這個臨時文件替換上次持久化的文件,達到數據恢復。 優點:使用單獨子進程來進行持久化,主進程不會進行任何IO操作,保證了redis的高性能 缺點:RDB是間隔一段時間進行持久化,如果持久化之間redis發生故障,會發生數據丟失。所以這種方式更適合數據要求不嚴謹的時候 RDB默認開啟,redis.conf中的具體配置參數如下; #dbfilename:持久化數據存儲在本地的文件 dbfilename dump.rdb #dir:持久化數據存儲在本地的路徑,如果是在/redis/redis-3.0.6/src下啟動的redis-cli,則數據會存儲在當前src目錄下 dir ./ #save時間,以下分別表示更改了1個key時間隔900s進行持久化存儲;更改了10個key300s進行存儲;更改10000個key60s進行存儲。 save 900 1 save 300 10 save 60 10000 持久化過程: 當滿足save的條件時,比如更改了1個key,900s后會將數據寫入臨時文件,持久化完成后將臨時文件替換舊的dump.rdb。(存儲數據的節點是到觸發時間時的的節點) 使用RDB恢復數據: 自動的持久化數據存儲到dump.rdb后。實際只要重啟redis服務即可完成(啟動redis的server時會從dump.rdb中先同步數據) 使用命令進行持久化save存儲: ./redis-cli -h ip -p port save ./redis-cli -h ip -p port bgsave 一個是在前臺進行存儲,一個是在后臺進行存儲。我的client就在server這臺服務器上,所以不需要連其他機器,直接./redis-cli bgsave AOF是將執行過的指令記錄下來,數據恢復時按照從前到后的順序再將指令執行一遍,實現數據恢復 優點:可以保持更高的數據完整性,如果設置追加file的時間是1s,如果redis發生故障,最多會丟失1s的數據;且如果日志寫入不完整支持redis-check-aof來進行日志修復;AOF文件沒被rewrite之前(文件過大時會對命令進行合并重寫),可以刪除其中的某些命令(比如誤操作的flushall)。 缺點:AOF文件比RDB文件大,且恢復速度慢。 AOF默認關閉,開啟方法,修改配置文件reds.conf:appendonly yes 其他相關配置項: #AOF保存的文件名 appendfilename "" 以下為同步方式相關的配置: #一旦插入命令,立即同步到磁盤,保證了完全的持久化,但是速度慢,不推薦 appendfsync always #AOF每秒進行同步 appendfsync everysec #不自動同步,性能最好,但是持久化沒有保證 appendfsync no 存儲過程:將快照內容以命令的形式追加到AOF文件中,所以隨著追加AOF文件會越來越大 保存的AOF文件存儲了執行的所有命令,所以可以進行修改文件來撤銷輸錯的命令(在重寫之前,如果重寫了就沒有辦法了) 針對AOF文件越來越大的問題,可以對AOF文件進行重寫,命令如下: redis-cli -h ip -p port bgrewriteaof 重寫命令的操作過程:在當前的快照保存工作結束后,開啟一個子進程,將AOF文件進行重寫,合并set命令等操作到一個臨時文件,達到縮小文件大小的目的。重寫結束后后將臨時文件替換為新的AOF文件(重寫過程中如果有新的redis操作命令,會提交到緩存中,重寫結束后追加到AOF文件內) 說明:redis2.4以上版本,重寫機制自動觸發。觸發的相關redis.conf配置如下: auto-aof-rewrite-percentage 100(當目前的AOF文件大小超過上一次重寫文件大小的百分之幾時進行重寫,如果沒有重啟過,則以啟動時的AOF文件大小為依據); auto-aof-rewrite-min-size 64mb(允許重寫的最小AOF文件大小); 數據恢復: 重啟redis服務,前提是配置文件必須設置了appendonly yes,然后會從appendfile的文件加載文件。反之是從RDB中加載數據的。
轉載于:https://www.cnblogs.com/wrqysrt/p/10919947.html
總結
以上是生活随笔為你收集整理的redis的持久化存储,RDB与AOF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JsonArray
- 下一篇: 电动车转把有刷和无刷的区别?