redis中AOF和RDB的關閉方法

redis中AOF和RDB的關閉方法

 

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

緣由:redis

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

  2. 多是同一時間導入的數據太多,致使數據持久化的操做出問題,此時須要關閉rdb跟aof。app

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

(或者進入配置文件將:server

Save 900 1      htm

Save 300 10    blog

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的時候,觸發重寫機制;

相關文章
相關標籤/搜索