Redis安裝部署學習筆記

來源:互聯網
上載者:User

Redis安裝部署學習筆記
1 概述

目前多數的NoSql資料庫本質上都是索引值對形式,Redis也不例外。作為快取資料庫的一種,和Memcached相比,有以下幾種主要的優點:

(1)速度上,Redis要比Memcached快,這是基於一些Benchmarks的測試結果得出的,而且在記憶體使用量上,Redis突破了實體記憶體限制,可以使用虛擬記憶體;

(2)資料類型比Memcached要多,Redis支援List、Set、SortedSet、HashMap等多種資料結構;

(3)持久化方面,Memcached沒有相應的持久化機制,而Redis有RDB快照和AOF日誌兩種形式結合做持久化,很大限度上保證了資料的持久化和安全性,不像Memcached斷電後全都沒了。

Redis不失為Memcached的一種良好的替代方案。

MongoDB是一種適合做格式化文檔的儲存及查詢的NoSql資料庫,它可以可以用來做海量資料存放區,畢竟是一種硬碟資料庫,和Redis這種快取資料庫沒什麼可比性。網上那麼多討論的,這裡就不說了,見參考文檔1。

Redis也可以在硬碟上儲存資料以及跨節點複製資料,也可以用來做隊列系統,據說GitHub就採用Redis作為其基礎架構。

Ubuntu 14.04下Redis安裝及簡單測試

Redis叢集明細文檔

Ubuntu 12.10下安裝Redis(圖文詳解)+ Jedis串連Redis

Redis系列-安裝部署維護篇

CentOS 6.3安裝Redis

Redis設定檔redis.conf 詳解

2 安裝部署

目前官方發布的最新穩定版是2.8.6,我們就以它為例進行下述的操作及說明。

2.1 Centos安裝部署

安裝步驟如下:

(1)將redis-2.8.6.tar.gz安裝包拷貝到我們的指定目錄下;

(2)使用命令tar -zxvf redis-2.8.6.tar.gz將tar包解壓縮,得到redis-2.8.6目錄;

(3)進入redis-2.8.6目錄,執行make命令進行編譯;

(4)編譯結束之後,配置redis.conf檔案,將“daemonize”屬性設定為“yes”,表示我們會以後台進程形式啟動Redis服務;將“port”屬性設定為指定的連接埠,這裡預設為“6379”;將“logfile”屬性設定為指定的日誌路徑,其餘的屬性可以保持預設。

(5)使用命令src/redis-server ./redis.conf啟動Redis服務,啟動之後,可以在剛才配置的日誌路徑中看到如下類似資訊:

這個帥氣的表徵圖就是Redis的LOGO了。

(6)執行用戶端命令,驗證服務是否正常:

(7)Redis服務停止命令,src/redis-cli shutdown

2.2 conf設定檔說明

剛才在部署的時候,提到了redis.conf這個檔案,這是整個Redis的最重要的設定檔,對於其中的一些參數,做如下說明:

屬性

說明

daemonize

如果值是“yes”,則啟動服務的時候是後台守護進程形式,如果值是“no”,則相反

pidfile

指定儲存Redis進程號的檔案路徑

port

指定當前Redis服務的連接埠,預設為6379

tcp-backlog

此參數確定了TCP串連中已完成隊列(完成三向交握之後)的長度, 當然此值必須不大於Linux系統定義的/proc/sys/net/core/somaxconn值,預設是511,而Linux的預設參數值是128。當系統並發量大並且用戶端速度緩慢的時候,可以將這二個參數一起參考設定。

timeout

用戶端和Redis服務端的連線逾時時間,預設是0,表示永不逾時。

tcp-keepalive

如果值非0,單位是秒,表示將周期性的使用SO_KEEPALIVE檢測用戶端是否還處於健康狀態,避免伺服器一直阻塞,官方給出的建議值是60S。

loglevel

Redis總共支援四個層級:debug、verbose、notice、warning。

Debug:記錄很多資訊,用於開發與測試;

Varbose:有用的資訊,不像debug會記錄那麼多;

Notice:普通的verbose,常用於生產環境;

Warning:只有非常重要或者嚴重的資訊會記錄到日誌;

預設是notice層級。

logfile

日誌的儲存路徑

databases

可用的資料庫數,預設值為16,預設資料庫為0,資料庫範圍在0-(database-1)之間,個人覺得DB的概念類似於命名空間

save

儲存資料庫快照集資訊到磁碟,其對應的值有兩個,比如save 300 10表示:300秒內至少有300個key被改變時,觸發儲存資訊到磁碟的事件。

stop-writes-on-bgsave-error

當持久化出現錯誤之後,是否繼續提供寫服務

rdbcompression

持久化到RDB檔案時,是否壓縮,“yes”為壓縮,“no”則反之

rdbchecksum

讀取和寫入的時候是否支援CRC64校正,預設是開啟的

dbfilename

鏡像檔案的名字

dir

當前工作目錄,設定檔和鏡像檔案等都在此目錄下

masterauth

設定訪問master伺服器的密碼

slave-serve-stale-data

當slave伺服器和master伺服器失去串連後,或者當資料正在複製傳輸的時候,如果此參數值設定“yes”,slave伺服器可以繼續接受用戶端的請求,否則,會返回給請求的用戶端如下資訊“SYNC with master in progress”

slave-read-only

是否允許slave伺服器節點只提供讀服務

repl-disable-tcp-nodelay

指定向slave同步資料時,是否禁用socket的NO_DELAY選項。若配置為“yes”,則禁用NO_DELAY,則TCP協議棧會合并小包統一發送,這樣可以減少主從節點間的包數量並節省頻寬,但會增加資料同步到slave的時間。若配置為“no”,表明啟用NO_DELAY,則TCP協議棧不會延遲小包的發送時機,這樣資料同步的延時會減少,但需要更大的頻寬。通常情況下,應該配置為no以降低同步延時,但在主從節點間網路負載已經很高的情況下,可以配置為yes。

slave-priority

指定slave的優先順序。在不只1個slave存在的部署環境下,當master宕機時,Redis Sentinel會將priority值最小的slave提升為master。需要注意的是,若該配置項為0,則對應的slave永遠不會自動提升為master。

appendonly

開啟append only 模式之後,redis 會把所接收到的每一次寫操作請求都追加到appendonly.aof 檔案中,當redis 重新啟動時,會從該檔案恢複出之前的狀態。但是這樣會造成appendonly.aof 檔案過大,所以redis 還支援了BGREWRITEAOF 指令,對appendonly.aof 進行重新整理。預設是不開啟的。

appendfilename

預設為appendonly.aof。

appendfsync

設定aof的同步頻率,有三種選擇always、everysec、no,預設是everysec表示每秒同步一次。

no-appendfsync-on-rewrite

指定是否在後台aof檔案rewrite期間調用fsync,預設為no,表示要調用fsync(無論後台是否有子進程在刷盤)。Redis在後台寫RDB檔案或重寫afo檔案期間會存在大量磁碟IO,此時,在某些linux系統中,調用fsync可能會阻塞。

auto-aof-rewrite-percentage

指定Redis重寫aof檔案的條件,預設為100,表示與上次rewrite的aof檔案大小相比,當前aof檔案增長量超過上次afo檔案大小的100%時,就會觸發background rewrite。若配置為0,則會禁用自動rewrite

auto-aof-rewrite-min-size

指定觸發rewrite的aof檔案大小。若aof檔案小於該值,即使當前檔案的增量比例達到auto-aof-rewrite-percentage的配置值,也不會觸發自動rewrite。即這兩個配置項同時滿足時,才會觸發rewrite。

lua-time-limit

一個Lua指令碼最長的執行時間,單位為毫秒,如果為0或負數表示無限執行時間,預設為5000

notify-keyspace-events

見參考3,按鍵通知事件

aof-rewrite-incremental-fsync

aof rewrite過程中,是否採取增量檔案同步策略,預設為“yes”。 rewrite過程中,每32M資料進行一次檔案同步,這樣可以減少aof大檔案寫入對磁碟的操作次數

 

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

相關文章

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.