Redis安裝+叢集+效能監控

EdgarZz發表於2019-03-04

最近專案即將上線,由於人手問題,各種研究運維相關知識,這兩天剛弄完redis叢集部署的問題,跟大家嘮嘮。

一、Redis安裝

*以下均是在Linux環境下執行,系統ubuntu16.04

1. 下載穩定版

sudo wget http://download.redis.io/redis-stable.tar.gz
複製程式碼

2. 解壓

sudo tar -zxvf redis-stable.tar.gz
複製程式碼

3. 如果沒有GCC編輯器就裝一下

sudo apt-get install gcc
複製程式碼

4. 編輯、安裝

cd redis-stable
make
make install PREFIX=安裝目錄
複製程式碼

5. Redis配置

cd 步驟4安裝目錄/bin
cp redis-stable目錄/redis.conf ./
# 如果就是想起個簡單的redis服務,到這裡就結束了

針對redis cluster需要修改的配置(實際使用去掉註釋):
bind IP地址  # 為了外網訪問,原為127.0.0.1
port 6379 # 埠號
daemonize yes # 後臺模式
# 如果要設定密碼的話,masterauth和requirepass都要設定,否則主從切換時,會有授權問題
masterauth 密碼
requirepass 密碼(必須一致)
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
複製程式碼

6. 啟服務

如果想在一臺機器上啟多個服務,可以複製多個reids.conf,修改port,並且要修改日誌檔名稱
也可以粗暴的複製多個bin資料夾,只改port就行了
./redis-server redis.conf
複製程式碼

二、Redis叢集

目前,redis叢集解決方案有兩個:

1. Twemproxy

這是Twitter推出的解決方案,簡單的說就是上層加個代理負責分發,屬於client端叢集方案,目前大多數應用者都在採用的解決方案。

會用到LVS、Twemproxy、Keepalived、Redis主從模式,感覺太麻煩了,而且沒有線上擴容節點能力,公司經濟能力有限,沒法一開始就預留出足夠的節點,後來發現了官推的redis cluster方案,就放棄了Twemproxy。

2. Redis Cluster

Redis3.0之後,官方推出的server端叢集方案

優點:

(1) 官方解決方案

(2) 可以線上水平擴充套件(Twemproxy的一大弊端就是不支援線上擴容節點)

(3) 客戶端直連,系統瓶頸更少

(4) 無中心架構

(5) 支援資料分片
複製程式碼

根據需求,最終解決方案選擇:redis cluster +主從模式

下面介紹一下配置

1. 安裝ruby環境

sudo apt-get install ruby
sudo apt-get install rubygems
sudo gem install redis  # ruby的redis客戶端
複製程式碼

2. 如果要設定密碼,這裡要修改一些配置

執行 gem environment 找到 INSTALLATION DIRECTORY

Redis安裝+叢集+效能監控

cd到上面路徑+/gems/redis-xxx/lib/redis/
vim client.rb
password => "密碼"  #修改password為指定密碼
複製程式碼

Redis安裝+叢集+效能監控

3. 還有另一種設定密碼的方式

最開始redis不要設定密碼,待叢集起來之後,通過config命令挨個redis服務修改配置

configset masterauth 密碼
config set requirepass 密碼
config rewrite
複製程式碼

4. 配置叢集

cd redis安裝目錄
cp redis-stable目錄/src/redis-trib.rb ./
./redis-trib.rb create --replicas 1 192.168.1.222:6379 192.168.1.223:6379 192.168.1.224:6379 192.168.1.225:6379192.168.1.226:6379 192.168.1.227:6379  # replicas 1表示一從,本案例三主三從
複製程式碼

可以通過如下檢查各節點情況:

./redis-trib.rb check 192.168.1.222:6379
複製程式碼

三、Redis效能監控

redis-cli本身提供monitor功能,且功能強大,不過monitor效能消耗很大,只應該短期開啟除錯,不能作為長期效能監控解決方案

這裡選用了redis-monitor,支援叢集,python編寫,有web端

1. 安裝python環境(redis-monitor是基於python2.7的)

sudo apt-get install python2.7 python2.7-dev
複製程式碼

2. 安裝build依賴包-有些pip安裝的包需要libssl和libevent編譯環境

sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-devlibxml2-dev libxslt-dev
複製程式碼

3. 安裝pip–包管理工具

sudo apt-get install python-pip
複製程式碼

4. 下載redis-monitor

git clone https://github.com/LittlePeng/redis-monitor.git
複製程式碼

5. 安裝依賴

cd redis-monitor
pip install -r requirements.txt
複製程式碼

6. 後臺模式啟服務

cd redis-monitor/src
pythonredis_monitor_daemon.py   # 資訊收集
python redis_live_daemon.py   # web,port:8888

訪問:127.0.0.1:8888/index.html
複製程式碼

Redis安裝+叢集+效能監控

相關文章