Redis安裝+集羣+性能監控

最近項目即將上線,因爲人手問題,各類研究運維相關知識,這兩天剛弄完redis集羣部署的問題,跟你們嘮嘮。html

1、Redis安裝

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

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
複製代碼

2、Redis集羣

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

1. Twemproxy

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

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

2. Redis Cluster

Redis3.0以後,官方推出的server端集羣方案web

優勢:redis

(1) 官方解決方案

(2) 能夠在線水平擴展(Twemproxy的一大弊端就是不支持在線擴容節點)

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

(4) 無中心架構

(5) 支持數據分片
複製代碼

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

下面介紹一下配置vim

1. 安裝ruby環境

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

2. 若是要設置密碼,這裏要修改一些配置

執行 gem environment 找到 INSTALLATION DIRECTORYruby

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

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
複製代碼

3、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
複製代碼

相關文章
相關標籤/搜索