linux Redis sentinel(哨兵模式)搭建

一膝迎、選擇版本并下載

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

二、編譯安裝

tar xzf redis-4.0.10.tar.gz
cd redis-4.0.10
make PREFIX=/usr/local/redis install

三、創(chuàng)建配置文件

cp redis.conf  /usr/local/redis/
cp sentinel.conf  /usr/local/redis/
mkdir workspace

1. 部署預(yù)期

  • 單機(jī)1主,2從進(jìn)程
    slaver ip:30001
    master ip:30002
    slaver ip:30003
  • 哨兵進(jìn)程
    sentinel ip:40000

2.創(chuàng)建預(yù)處理配置文件

cd /usr/local/redis/
#1主2從配置
cp redis.conf redis30001.conf
cp redis.conf redis30002.conf
cp redis.conf redis30003.conf
#哨兵配置
cd  sentinel.conf  sentinel40000.conf

3.創(chuàng)建自動(dòng)修改配置腳本

vim autoEdit.sh

#bin/sh
【參數(shù)1】操作的目標(biāo)文件
【參數(shù)2】配置的端口號(hào)
#本機(jī)IP
IP=110.110.110.110
#也可以使用下面自動(dòng)獲取本機(jī)ip的命令旨剥,個(gè)別機(jī)器可能不支持,請(qǐng)自行選擇
#IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
#設(shè)置端口號(hào)【第二個(gè)參數(shù)】
PORT=$2
#密碼
REQUIREPASS=www.liudaye.com
#主庫(kù)IP
MASTERIP=110.110.110.110
#主庫(kù)密碼
MASTERPASS=www.liudaye.com
#主庫(kù)端口
MASTERPORT=30002
#取消綁定ip設(shè)置
sed -i "s/bind 127.0.0.1/bind 127.0.0.1 $IP/g" $1
#設(shè)置密碼
sed -i "s/# masterauth <master-password>/masterauth $MASTERPASS/g" $1
#設(shè)置密碼
sed -i "s/# requirepass foobared/requirepass $REQUIREPASS/g" $1
#設(shè)置端口號(hào)
sed -i "s/port 6379/port $PORT/g"  $1
#設(shè)置后臺(tái)執(zhí)行
sed -i "s/daemonize no/daemonize yes/g"  $1
#設(shè)置進(jìn)程號(hào)
sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/var\/run\/redis_$PORT.pid/g" $1
#設(shè)置日志文件
sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/workspace\/$PORT.log\"/g"  $1
#設(shè)置rdb文件
sed -i "s/dbfilename dump.rdb/dbfilename dump$PORT.rdb/g"  $1
#設(shè)置工作目錄
sed -i "s/dir .\//dir \/usr\/local\/redis\/workspace/g"  $1
#設(shè)置AOP文件
sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly$PORT.aof\"/g"  $1
#設(shè)置appendonly
sed -i "s/appendonly no/appendonly yes/g" $1
#設(shè)置主庫(kù)地址
echo "slaveof $MASTERIP $MASTERPORT" >>$1

4. 修改redis具體配置

sh autoEdit.sh  redis30001.conf 30001
sh autoEdit.sh  redis30002.conf 30002
sh autoEdit.sh  redis30003.conf 30003
#刪除master中的slaveof 配置(最后一行)
sed -i '$d' redis30002.conf

5.查看最終詳細(xì)配置

cat redis30001.conf |grep -Ev "#|^$"

bind 127.0.0.1 110.110.110.110
protected-mode yes
port 30001
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_30001.pid
loglevel notice
logfile "/usr/local/redis/workspace/30001.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump30001.rdb
dir /usr/local/redis/workspace
masterauth liudaye.com
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass liudaye.com
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly30001.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
slaveof 110.110.110.110 30002

6. 修改哨兵配置

#修改綁定IP
bind 127.0.0.1 110.110.110.110
#修改端口
port 40000
#修改工作目錄
dir "/usr/local/redis/workspace"
#設(shè)置監(jiān)聽(tīng)主庫(kù)地址浅缸、端口轨帜,和選舉勝出票數(shù) (1主,2從時(shí)配置1)
sentinel monitor mymaster 110.110.110.110 30002 1
#設(shè)置master名字mymaster 和密碼
sentinel auth-pass mymaster www.liudaye.com
sentinel config-epoch mymaster 8
#后臺(tái)執(zhí)行
daemonize yes
#日志文件
logfile "/usr/local/redis/workspace/sentinel40000.log"

四衩椒、啟動(dòng)服務(wù)

啟動(dòng)主從庫(kù)服務(wù)

cd /usr/local/redis
#啟動(dòng)主庫(kù)
bin/redis-server  redis30002.conf
#啟動(dòng)從庫(kù)
bin/redis-server  redis30001.conf
#啟動(dòng)從庫(kù)
bin/redis-server  redis30003.conf

啟動(dòng)哨兵監(jiān)控進(jìn)程

cd /usr/local/redis
#啟動(dòng)哨兵
bin/redis-sentinel sentinel40000.conf
#bin/redis-server sentinel40000.conf --sentinel

五蚌父、連接客戶端

登錄哨兵

bin/redis-cli -h 110.110.110.110 -p 40000

Sentinel 可接受的命令官網(wǎng)

PING :返回 PONG 。
SENTINEL masters :列出所有被監(jiān)視的主服務(wù)器毛萌,以及這些主服務(wù)器的當(dāng)前狀態(tài)苟弛。
SENTINEL master <master name>:特定主服務(wù)器的當(dāng)前狀態(tài)。
SENTINEL slaves <master name>:列出給定主服務(wù)器的所有從服務(wù)器阁将,以及這些從服務(wù)器的當(dāng)前狀態(tài)膏秫。
SENTINEL sentinels <master name> Show a list of sentinel instances for this master, and their state.
SENTINEL get-master-addr-by-name <master name> : 返回給定名字的主服務(wù)器的 IP 地址和端口號(hào)。 如果這個(gè)主服務(wù)器正在執(zhí)行故障轉(zhuǎn)移操作冀痕, 或者針對(duì)這個(gè)主服務(wù)器的故障轉(zhuǎn)移操作已經(jīng)完成荔睹, 那么這個(gè)命令返回新的主服務(wù)器的 IP 地址和端口號(hào)狸演。
SENTINEL reset <pattern>: 重置所有名字和給定模式 pattern 相匹配的主服務(wù)器言蛇。 pattern 參數(shù)是一個(gè) Glob 風(fēng)格的模式僻他。 重置操作清楚主服務(wù)器目前的所有狀態(tài), 包括正在執(zhí)行中的故障轉(zhuǎn)移腊尚, 并移除目前已經(jīng)發(fā)現(xiàn)和關(guān)聯(lián)的吨拗, 主服務(wù)器的所有從服務(wù)器和 Sentinel 。
SENTINEL failover : 當(dāng)主服務(wù)器失效時(shí)婿斥, 在不詢問(wèn)其他 Sentinel 意見(jiàn)的情況下劝篷, 強(qiáng)制開(kāi)始一次自動(dòng)故障遷移 (不過(guò)發(fā)起故障轉(zhuǎn)移的 Sentinel 會(huì)向其他 Sentinel 發(fā)送一個(gè)新的配置,其他 Sentinel 會(huì)根據(jù)這個(gè)配置進(jìn)行相應(yīng)的更新)民宿。

登錄主從庫(kù)

#從庫(kù)
bin/redis-cli -h 110.110.110.110 -p 30001
#主庫(kù)
bin/redis-cli -h 110.110.110.110 -p 30002
#認(rèn)證
auth www.liudaye.com
#查看信息
info replication
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末娇妓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子活鹰,更是在濱河造成了極大的恐慌哈恰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件志群,死亡現(xiàn)場(chǎng)離奇詭異着绷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)锌云,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門荠医,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人桑涎,你說(shuō)我怎么就攤上這事彬向。” “怎么了攻冷?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵娃胆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我讲衫,道長(zhǎng)缕棵,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任涉兽,我火速辦了婚禮招驴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘枷畏。我一直安慰自己别厘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布拥诡。 她就那樣靜靜地躺著触趴,像睡著了一般氮发。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冗懦,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天爽冕,我揣著相機(jī)與錄音,去河邊找鬼披蕉。 笑死颈畸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的没讲。 我是一名探鬼主播眯娱,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼爬凑!你這毒婦竟也來(lái)了徙缴?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘁信,失蹤者是張志新(化名)和其女友劉穎于样,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體吱抚,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡百宇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秘豹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片携御。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖既绕,靈堂內(nèi)的尸體忽然破棺而出啄刹,到底是詐尸還是另有隱情,我是刑警寧澤凄贩,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布誓军,位于F島的核電站,受9級(jí)特大地震影響疲扎,放射性物質(zhì)發(fā)生泄漏昵时。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一椒丧、第九天 我趴在偏房一處隱蔽的房頂上張望壹甥。 院中可真熱鬧,春花似錦壶熏、人聲如沸句柠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)溯职。三九已至精盅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谜酒,已是汗流浹背叹俏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甚带,地道東北人她肯。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓佳头,卻偏偏與公主長(zhǎng)得像鹰贵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子康嘉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容