Redis-序列化和存储模式
Redis中數據存儲模式有2種:cache-only,persistence;
? cache-only即只做為“緩存”服務,不持久數據,數據在服務終止后將消失,此模式下也將不存在“數據恢復”的手段,是一種安全性低/效率高/容易擴展的方式;
? persistence即為內存中的數據持久備份到磁盤文件,在服務重啟后可以恢復,此模式下數據相對安全。
對于persistence持久化存儲,Redis提供了兩種持久化方法:
? Redis DataBase(簡稱RDB)
rdb更像是一個定時任務,在固定的時間點通過單獨的子進程來進行持久化,主進程不進行任何IO操作,在持久化結束后用這個臨時文件去替換上次的的持久文件,但是一旦在持久化過程中發生故障,此期間的數據將會丟失.Redis默認開啟的是此模式,此模式性能更高其使用數據快照的方式也更適合目前主流開發.
redis.conf的設置參數為:
#dbfilename:持久化數據存儲在本地的文件 dbfilename dump.rdb #dir:持久化數據存儲在本地的路徑,如果是在/redis/redis-3.0.6/src下啟動的redis-cli,則數據會存儲在當前src目錄下 dir ./ ##snapshot觸發的時機,save <seconds> <changes> ##如下為900秒后,至少有一個變更操作,才會snapshot ##對于此值的設置,需要謹慎,評估系統的變更操作密集程度 ##可以通過“save “””來關閉snapshot功能 #save時間,以下分別表示更改了1個key時間隔900s進行持久化存儲;更改了10個key300s進行存儲;更改10000個key60s進行存儲。 save 900 1 save 300 10 save 60 10000 ##當snapshot時出現錯誤無法繼續時,是否阻塞客戶端“變更操作”,“錯誤”可能因為磁盤已滿/磁盤故障/OS級別異常等 stop-writes-on-bgsave-error yes ##是否啟用rdb文件壓縮,默認為“yes”,壓縮往往意味著“額外的cpu消耗”,同時也意味這較小的文件尺寸以及較短的網絡傳輸時間 rdbcompression yes
?
? Append-only file (簡稱AOF)
aof,每秒向日志文件尾部追加數據和對數據的操作的指令,更加的安全可靠,即使redis發生故障,也只會丟失1s的數據,日志文件若不完整也可以使用redis-check-aof來進行修復.并且可以對日志文件進行操作刪除不必要的指令和數據.AOF中的內容是字符串還挺方便理解的......但是AOF文件會比RDB文件大許多恢復速度會慢上許多
Redis默認是關閉AOF的需要更改配置文件來開啟 reds.conf:appendonly yes
##此選項為aof功能的開關,默認為“no”,可以通過“yes”來開啟aof功能 ##只有在“yes”下,aof重寫/文件同步等特性才會生效 appendonly yes ##指定aof文件名稱 appendfilename appendonly.aof ##指定aof操作中文件同步策略,有三個合法值:always everysec no,默認為everysec appendfsync everysec ##在aof-rewrite期間,appendfsync是否暫緩文件同步,"no"表示“不暫緩”,“yes”表示“暫緩”,默認為“no” no-appendfsync-on-rewrite no ##aof文件rewrite觸發的最小文件尺寸(mb,gb),只有大于此aof文件大于此尺寸是才會觸發rewrite,默認“64mb”,建議“512mb” auto-aof-rewrite-min-size 64mb ##相對于“上一次”rewrite,本次rewrite觸發時aof文件應該增長的百分比。 ##每一次rewrite之后,redis都會記錄下此時“新aof”文件的大小(例如A),那么當aof文件增長到A*(1 + p)之后 ##觸發下一次rewrite,每一次aof記錄的添加,都會檢測當前aof文件的尺寸。 auto-aof-rewrite-percentage 100如果緩存中的數據會經常變更aof會造成很大的磁盤負擔.
?
當然,兩種模式可以共同開啟(不推薦)
在當前網絡環境和物理環境都穩定的情況下還是推薦使用rdb恢復起來速度快,當然也可以master使用AOF確保數據完整性,作為備份的第一選擇.而slave作快速響應客戶端請求的角色使用rdb.
轉載于:https://www.cnblogs.com/YuaoSun/p/9248319.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Redis-序列化和存储模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端工作流
- 下一篇: SVN中各种符号箭头含义