redis配置詳解

來源:互聯網
上載者:User

配置Redis

  通過命令redis-server直接啟動服務是不帶任何配置資訊的,所有配置均採用預設設定。若想啟用設定檔,可以設定檔的絕對路徑附加在redis-server命令之後。預設情況下,在編譯完redis後會在redis目錄中產生一個redis.conf檔案,該檔案既是redis設定檔的預設模版

src/redis-server redis.conf

  Redis支援很多的參數,但都有預設值。

  ●daemonize:

  預設情況下,redis不是在後台啟動並執行,如果需要在後台運行,把該項的值更改為yes。

  ●pidfile

  當Redis在後台啟動並執行時候,Redis預設會把pid檔案放在/var/run/redis.pid,你可以配置到其他地址。當運行多個redis服務時,需要指定不同的pid檔案和連接埠。

  ●bind

  指定Redis只接收來自於該IP地址的請求,如果不進行設定,那麼將處理所有請求,在生產環境中最好設定該項。

  ●port

  監聽連接埠,預設為6379。

  ●timeout

  設定用戶端串連時的逾時時間,單位為秒。當用戶端在這段時間內沒有發出任何指令,那麼關閉該串連。

  ●loglevel

  log等級分為4級,debug, verbose, notice, 和warning。生產環境下一般開啟notice。

  ●logfile

  配置log檔案地址,預設使用標準輸出,即列印在命令列終端的視窗上。

  ●databases

  設定資料庫的個數,可以使用SELECT 命令來切換資料庫。預設使用的資料庫是0。

  ●save

  設定Redis進行資料庫鏡像的頻率。

  if(在60秒之內有10000個keys發生變化時){

  進行鏡像備份

  }else if(在300秒之內有10個keys發生了變化){

  進行鏡像備份

  }else if(在900秒之內有1個keys發生了變化){

  進行鏡像備份

  }


  ●rdbcompression

  在進行鏡像備份時,是否進行壓縮。

  ●dbfilename

  鏡像備份檔案的檔案名稱。

  ●dir

  資料庫鏡像備份的檔案放置的路徑。這裡的路徑跟檔案名稱要分開配置是因為Redis在進行備份時,先會將當前資料庫的狀態寫入到一個臨時檔案中,等備份完成時,再把該該臨時檔案替換為上面所指定的檔案,而這裡的臨時檔案和上面所配置的備份檔案都會放在這個指定的路徑當中。

  ●slaveof

  設定該資料庫為其他資料庫的從資料庫。

  ●masterauth

  當主要資料庫串連要求輸入密碼驗證時,在這裡指定。

  ●requirepass

  設定用戶端串連後進行任何其他指定前需要使用的密碼。警告:因為redis速度相當快,所以在一台比較好的伺服器下,一個外部的使用者可以在一秒鐘進行150K次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。

  ●maxclients

  限制同時串連的客戶數量。當串連數超過這個值時,redis將不再接收其他串連請求,用戶端嘗試串連時將收到error資訊。

  ●maxmemory

  設定redis能夠使用的最大記憶體。當記憶體滿了的時候,如果還接收到set命令,redis將先嘗試剔除設定過expire資訊的key,而不管該key的到期時間還沒有到達。在刪除時,將按照到期時間進行刪除,最早將要被到期的key將最先被刪除。如果帶有expire資訊的key都刪光了,那麼將返回錯誤。這樣,redis將不再接收寫請求,只接收get請求。maxmemory的設定比較適合於把redis當作於類似memcached的緩衝來使用。

  ●appendonly

  預設情況下,redis會在後台非同步把資料庫鏡像備份到磁碟,但是該備份是非常耗時的,而且備份也不能很頻繁,如果發生諸如拉閘限電、拔插頭等狀況,那麼將造成比較大範圍的資料丟失。所以redis提供了另外一種更加高效的Database Backup及災難恢複方式。開啟append only模式之後,redis會把所接收到的每一次寫操作請求都追加到appendonly.aof檔案中,當redis重新啟動時,會從該檔案恢複出之前的狀態。但是這樣會造成appendonly.aof檔案過大,所以redis還支援了BGREWRITEAOF指令,對appendonly.aof進行重新整理。所以我認為推薦生產環境下的做法為關閉鏡像,開啟appendonly.aof,同時可以選擇在訪問較少的時間每天對appendonly.aof進行重寫一次。

  ●appendfsync

  設定對appendonly.aof檔案進行同步的頻率。always表示每次有寫操作都進行同步,everysec表示對寫操作進行累積,每秒同步一次。這個需要根據實際業務情境進行配置。

  ●vm-enabled

  是否開啟虛擬記憶體支援。因為redis是一個記憶體資料庫,而且當記憶體滿的時候,無法接收新的寫請求,所以在redis 2.0中,提供了虛擬記憶體的支援。但是需要注意的是,redis中,所有的key都會放在記憶體中,在記憶體不夠時,只會把value值放入交換區。這樣保證了雖然使用虛擬記憶體,但效能基本不受影響,同時,你需要注意的是你要把vm-max-memory設定到足夠來放下你的所有的key。

  ●vm-swap-file

  設定虛擬記憶體的分頁檔路徑。

  ●vm-max-memory

  這裡設定開啟虛擬記憶體之後,redis將使用的最大實體記憶體的大小。預設為0,redis將把他所有的能放到分頁檔的都放到分頁檔中,以盡量少的使用實體記憶體。在生產環境下,需要根據實際情況設定該值,最好不要使用預設的0。

  ●vm-page-size

  設定虛擬記憶體的頁大小,如果你的value值比較大,比如說你要在value中放置部落格、新聞之類的所有文章內容,就設大一點,如果要放置的都是很小的內容,那就設小一點。

  ●vm-pages

  設定分頁檔的總的page數量,需要注意的是,page table資訊會放在實體記憶體中,每8個page就會佔據RAM中的1個byte。總的虛擬記憶體大小 = vm-page-size * vm-pages。

  ●vm-max-threads

  設定VM IO同時使用的線程數量。因為在進行記憶體交換時,對資料有編碼和解碼的過程,所以儘管IO裝置在硬體上本上不能支援很多的並發讀寫,但是還是如果你所儲存的vlaue值比較大,將該值設大一些,還是能夠提升效能的。

  ●glueoutputbuf

  把小的輸出緩衝放在一起,以便能夠在一個TCP packet中為用戶端發送多個響應,具體原理和真實效果我不是很清楚。所以根據注釋,你不是很確定的時候就設定成yes。

  ●hash-max-zipmap-entries

  在redis 2.0中引入了hash資料結構。當hash中包含超過指定元素個數並且最大的元素沒有超過臨界時,hash將以一種特殊的編碼方式(大大減少記憶體使用量)來儲存,這裡可以設定這兩個臨界值。

  ●activerehashing

  開啟之後,redis將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低記憶體的使用。當你的使用情境中,有非常嚴格的即時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。如果沒有這麼嚴格的即時性要求,可以設定為yes,以便能夠儘可能快的釋放記憶體。

Redis官方文檔對VM的使用提出了一些建議: 當你的key很小而value很大時,使用VM的效果會比較好.因為這樣節約的記憶體比較大. 當你的key不小時,可以考慮使用一些非常方法將很大的key變成很大的value,比如你可以考慮將key,value組合成一個新的value. 最好使用linux ext3 等對疏鬆檔案支援比較好的檔案系統儲存你的swap檔案. vm-max-threads這個參數,可以設定訪問swap檔案的線程數,設定最好不要超過機器的核心數,如果設定為0,那麼所有對swap檔案的操作都是串列的.可能會造成比較長時間的延遲,但是對資料完整性有很好的保證。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.