Redis Sentinel 配置文件
生活随笔
收集整理的這篇文章主要介紹了
Redis Sentinel 配置文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
基礎(chǔ)參考:https://www.cnblogs.com/wang-li/p/9955303.html
配置文件講解
1.sentinel monitor?
# sentinel monitor <master-name> <ip> <redis-port> <quorum>sentinel 監(jiān)視主服務(wù)器的信息,master-name:是主服務(wù)器名稱 ip:是主服務(wù)器ip redis-port:是主服務(wù)器端口 quorum:主服務(wù)器失效需要多少個(gè)sentinel同意,如果同意的sentinel不達(dá)標(biāo),則不會(huì)進(jìn)行redis 故障遷移默認(rèn)配置: sentinel monitor mymaster 127.0.0.1 6379 22.sentinel down-after-milliseconds
# sentinel down-after-milliseconds <master-name> <milliseconds>SDOWN:如果服務(wù)器在給定的毫秒數(shù)之內(nèi),沒(méi)有返回sentinel發(fā)送的PING命令的回復(fù),或則返回一個(gè)錯(cuò)誤,那么sentinel將這個(gè)服務(wù)器標(biāo)記為主觀下線(subjectively down,簡(jiǎn)稱SDOWN)ODOWN:只有在數(shù)量足夠多的sentinel都將一個(gè)服務(wù)器標(biāo)記為主觀下線后,服務(wù)器才會(huì)被標(biāo)記為客觀下線(objectively down),這時(shí),自動(dòng)故障遷移才會(huì)執(zhí)行默認(rèn)配置: sentinel down-after-milliseconds mymaster 30000SDOWN log如下:
==> log-by-sentinel-6380.log <== 14980:X 14 Nov 17:20:18.790 # +sdown master mymaster 127.0.0.1 6380==> log-by-sentinel-6379.log <== 14972:X 14 Nov 17:20:18.812 # +sdown master mymaster 127.0.0.1 6380==> log-by-sentinel-6381.log <== 14986:X 14 Nov 17:20:18.838 # +sdown master mymaster 127.0.0.1 6380通過(guò)上面的log,可以發(fā)現(xiàn),此3個(gè)log都是主觀下線SDOWN
2.1關(guān)于主觀下線和客觀下線?
2.1.1主觀下線:?
是指單個(gè)sentinel實(shí)例對(duì)單個(gè)服務(wù)器做出SDOWN的判斷2.1.2客觀下線:?
是指多個(gè)sentinel實(shí)例對(duì)單個(gè)服務(wù)器做出的SDOWN判斷,并且通過(guò)sentinel is-master-down-by-addr命令交流后,得出的服務(wù)器下線判斷ODOWN log如下:?
==> log-by-sentinel-6379.log <== 14972:X 14 Nov 17:20:18.867 # +odown master mymaster 127.0.0.1 6380 #quorum 2/2 14972:X 14 Nov 17:20:18.867 # +new-epoch 3 14972:X 14 Nov 17:20:18.867 # +try-failover master mymaster 127.0.0.1 6380 14972:X 14 Nov 17:20:18.880 # +vote-for-leader b2affafd56391a794677a2a54cfa0893c31cd11c 33.sentinel parallel-syncs?
# sentinel parallel-syncs <master-name> <numslaves>在執(zhí)行故障轉(zhuǎn)移時(shí),可以同時(shí)有多少?gòu)姆?wù)器對(duì)新的主服務(wù)器進(jìn)行數(shù)據(jù)同步,此值越小,同步時(shí)間越長(zhǎng),此值越大,同步時(shí)間越小,但是所耗費(fèi)的網(wǎng)路資源也就越多默認(rèn)配置: sentinel parallel-syncs mymaster 14.sentinel auth-pass
# sentinel auth-pass <master-name> <password>用于設(shè)置主庫(kù)和從庫(kù)的master-name 和密碼,不過(guò)需要關(guān)注的點(diǎn)是,主庫(kù)和從庫(kù)應(yīng)該設(shè)置為一致的,否則會(huì)有問(wèn)題5.sentinel notification-script
# sentinel notification-script <master-name> <script-path>用于設(shè)置在進(jìn)行故障轉(zhuǎn)移后服務(wù)器發(fā)送的腳本例如:自己寫一個(gè)簡(jiǎn)單的python腳本,接收到的信息如下:6.sentinel client-reconfig-script?
# sentinel client-reconfig-script <master-name> <script-path>用于設(shè)置在進(jìn)行故障轉(zhuǎn)移后客戶端發(fā)送的腳本關(guān)于redis sentinel的客戶端
如果Redis sentinel在進(jìn)行故障轉(zhuǎn)移后,并沒(méi)有將master的信息通知到客戶端,那么故障轉(zhuǎn)移將毫無(wú)意義Python來(lái)實(shí)現(xiàn)?
代碼如下
# cat redis_sentinel_client.py #!/usr/bin/env python3import redis import redis.sentinelsentinel_list = redis.sentinel.Sentinel([ ('127.0.0.1',26379), ('127.0.0.1',26380), ('127.0.0.1',26381), ])#獲取主服務(wù)器信息 get_master_info = sentinel_list.discover_master('mymaster') print (get_master_info)#獲取從服務(wù)器信息 get_slave_info = sentinel_list.discover_slaves('mymaster') print (get_slave_info)#主服務(wù)器進(jìn)行寫入 write_redis_master = sentinel_list.master_for('mymaster',password='123456',db=0) print ("主庫(kù)端口: %s" %(write_redis_master.info()['tcp_port'])) if write_redis_master.set('1','test123'):#從服務(wù)器進(jìn)行讀取read_redis_slaves = sentinel_list.slave_for('mymaster',password='123456',db=0)print ("從庫(kù)端口:%s" %(read_redis_slaves.info()['tcp_port']))print (read_redis_slaves.get('1')) #執(zhí)行結(jié)果如下
# ./redis_sentinel_client.py ('127.0.0.1', 6380) [('127.0.0.1', 6379), ('127.0.0.1', 6381)] 主庫(kù)端口: 6380 從庫(kù)端口:6381 b'test123' # ./redis_sentinel_client.py ('127.0.0.1', 6380) [('127.0.0.1', 6379), ('127.0.0.1', 6381)] 主庫(kù)端口: 6380 從庫(kù)端口:6379 b'test123' #?
轉(zhuǎn)載于:https://www.cnblogs.com/wang-li/p/9972018.html
總結(jié)
以上是生活随笔為你收集整理的Redis Sentinel 配置文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2018.11.16 长难句4
- 下一篇: 三年了总觉的还是该写点什么