redis中AOF和RDB的關閉方法


redis中AOF和RDB的關閉方法

 

問題:當往redis中導入數據時,有時會出現redis server went away的情況;

原因:

  1. 導入的數據量太大,而內存不夠(即內存1G,但數據有2G)。此時的redis服務需要重啟。

  2. 可能是同一時間導入的數據太多,導致數據持久化的操作出問題,此時需要關閉rdb跟aof。

*關閉rdb的命令:config set save ""

(或者進入配置文件將:

Save 900 1      

Save 300 10    

Save 60 10000   

注釋掉,並打開save "" 的注釋,使得  save ""  生效,即可關閉rdb;

*關閉aof的命令:config set appendfsync no 

(或者進入配置文件,將appendonly設置為no,默認是 appendonly no 

(注:appendfsync 是同步機制,默認為appendfsync  everysec)---每秒同步一次寫操作到aof文件中;

 

該兩種設置查詢是否已修改成功,可分別通過config get save, config get appendfsync命令來查看。

注意:該命令都是通過執行redis-cli后方可執行。

 

  • RDB 將數據庫的快照(snapshot)以二進制的方式保存到磁盤中。

  • AOF 則以協議文本的方式,將所有對數據庫進行過寫入的命令(及其參數)記錄到 AOF 文件,以此達到記錄數據庫狀態的目的。

 

重要知識點:

rewrite是aof的一個機制,用來壓縮aof文件,通過fork一個子進程,重新寫一個新的aof文件,該次重寫不是讀取舊的aof文件進行復制,而是將讀取內存中的redis數據庫,重寫一份aof文件,有點類似於rdb的快照方式;

觸發機制為:

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

解釋:當rof文件的大小,比舊aof文件大百分之百的時候(2倍),且aof文件的大小大於64mb的時候,觸發重寫機制;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM