Redis安裝+集群+性能監(jiān)控

最近項(xiàng)目即將上線,由于人手問題,各種研究運(yùn)維相關(guān)知識,這兩天剛弄完redis集群部署的問題,跟大家嘮嘮。

一、Redis安裝

*以下均是在Linux環(huán)境下執(zhí)行,系統(tǒng)ubuntu16.04

1. 下載穩(wěn)定版

?? ?sudo wget?http://download.redis.io/redis-stable.tar.gz

2. 解壓

??? sudo?tar -zxvf redis-stable.tar.gz

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

??? sudoapt-get install gcc

4. 編輯、安裝

??? cd redis-stable

? ? make

??? make install PREFIX=安裝目錄

5. Redis配置

??? cd步驟4安裝目錄/bin

??? cp redis-stable目錄/redis.conf ./

??? *如果就是想起個(gè)簡單的redis服務(wù),到這里就結(jié)束了

??? 針對rediscluster需要修改的配置(實(shí)際使用去掉注釋):

??? bind IP地址? #為了外網(wǎng)訪問,原為127.0.0.1

??? port 6379 #端口號

??? daemonize yes #后臺模式

??? # 如果要設(shè)置密碼的話,masterauth和requirepass都要設(shè)置,否則主從切換時(shí),會有授權(quán)問題

??? masterauth 密碼

??? requirepass 密碼(必須一致)

??? appendonly yes

??? cluster-enabled yes

??? cluster-config-file nodes.conf

??? cluster-node-timeout 15000

6. 啟服務(wù)

??? 如果想在一臺機(jī)器上啟多個(gè)服務(wù),可以復(fù)制多個(gè)reids.conf,修改port,并且要修改日志文件名稱

????也可以粗暴的復(fù)制多個(gè)bin文件夾,只改port就行了

??? ./redis-server redis.conf

二、Redis集群

? ? 目前,redis集群解決方案有兩個(gè):

1. Twemproxy

??? 這是Twitter推出的解決方案,簡單的說就是上層加個(gè)代理負(fù)責(zé)分發(fā),屬于client端集群方案,目前大多數(shù)應(yīng)用者都在采用的解決方案。

? ? 會用到LVS、Twemproxy、Keepalived、Redis主從模式,感覺太麻煩了,而且沒有在線擴(kuò)容節(jié)點(diǎn)能力,公司經(jīng)濟(jì)能力有限,沒法一開始就預(yù)留出足夠的節(jié)點(diǎn),后來發(fā)現(xiàn)了官推的redis cluster方案,就放棄了Twemproxy。

2. Redis Cluster

??? Redis3.0之后,官方推出的server端集群方案

??? 優(yōu)點(diǎn):(1)官方解決方案

?????????????? (2)可以在線水平擴(kuò)展(Twemproxy的一大弊端就是不支持在線擴(kuò)容節(jié)點(diǎn))

?????????????? (3)客戶端直連,系統(tǒng)瓶頸更少

?????????????? (4)無中心架構(gòu)

?????????????? (5)支持?jǐn)?shù)據(jù)分片

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

? ? 下面介紹一下配置

? ? 1. 安裝ruby環(huán)境

??? sudoapt-get install ruby

??? sudo apt-get install rubygems

??? sudo gem install redis? # ruby的redis客戶端

? ? 2. 如果要設(shè)置密碼,這里要修改一些配置

??? 執(zhí)行?gem environment?找到 INSTALLATION DIRECTORY

?? ?cd到上面路徑+/gems/redis-xxx/lib/redis/

?? ?vim?client.rb

?? ?password => "密碼"? #修改password為指定密碼

? ? 3. 還有另一種設(shè)置密碼的方式

??? 最開始redis不要設(shè)置密碼,待集群起來之后,通過config命令挨個(gè)redis服務(wù)修改配置

??? 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表示一從,本案例三主三從

??? 可以通過如下檢查各節(jié)點(diǎn)情況:

??? ./redis-trib.rb?check 192.168.1.222:6379

三、Redis性能監(jiān)控

redis-cli本身提供monitor功能,且功能強(qiáng)大,不過monitor性能消耗很大,只應(yīng)該短期開啟調(diào)試,不能作為長期性能監(jiān)控解決方案

這里選用了redis-monitor,支持集群,python編寫,有web端

1. 安裝python環(huán)境(redis-monitor是基于python2.7的)

?? sudoapt-get install python2.7 python2.7-dev

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

???sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-devlibxml2-dev libxslt-dev

3. 安裝pip–包管理工具

??? sudoapt-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. 后臺模式啟服務(wù)

?? ?cd redis-monitor/src

? ??pythonredis_monitor_daemon.py?? # 信息收集

?? ?python redis_live_daemon.py?? # web,port:8888

?? ?訪問:127.0.0.1:8888/index.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容