Redis Sentinel 配置文件
生活随笔
收集整理的這篇文章主要介紹了
Redis Sentinel 配置文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎參考:https://www.cnblogs.com/wang-li/p/9955303.html
配置文件講解
1.sentinel monitor?
# sentinel monitor <master-name> <ip> <redis-port> <quorum>sentinel 監視主服務器的信息,master-name:是主服務器名稱 ip:是主服務器ip redis-port:是主服務器端口 quorum:主服務器失效需要多少個sentinel同意,如果同意的sentinel不達標,則不會進行redis 故障遷移默認配置: sentinel monitor mymaster 127.0.0.1 6379 22.sentinel down-after-milliseconds
# sentinel down-after-milliseconds <master-name> <milliseconds>SDOWN:如果服務器在給定的毫秒數之內,沒有返回sentinel發送的PING命令的回復,或則返回一個錯誤,那么sentinel將這個服務器標記為主觀下線(subjectively down,簡稱SDOWN)ODOWN:只有在數量足夠多的sentinel都將一個服務器標記為主觀下線后,服務器才會被標記為客觀下線(objectively down),這時,自動故障遷移才會執行默認配置: 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通過上面的log,可以發現,此3個log都是主觀下線SDOWN
2.1關于主觀下線和客觀下線?
2.1.1主觀下線:?
是指單個sentinel實例對單個服務器做出SDOWN的判斷2.1.2客觀下線:?
是指多個sentinel實例對單個服務器做出的SDOWN判斷,并且通過sentinel is-master-down-by-addr命令交流后,得出的服務器下線判斷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>在執行故障轉移時,可以同時有多少從服務器對新的主服務器進行數據同步,此值越小,同步時間越長,此值越大,同步時間越小,但是所耗費的網路資源也就越多默認配置: sentinel parallel-syncs mymaster 14.sentinel auth-pass
# sentinel auth-pass <master-name> <password>用于設置主庫和從庫的master-name 和密碼,不過需要關注的點是,主庫和從庫應該設置為一致的,否則會有問題5.sentinel notification-script
# sentinel notification-script <master-name> <script-path>用于設置在進行故障轉移后服務器發送的腳本例如:自己寫一個簡單的python腳本,接收到的信息如下:6.sentinel client-reconfig-script?
# sentinel client-reconfig-script <master-name> <script-path>用于設置在進行故障轉移后客戶端發送的腳本關于redis sentinel的客戶端
如果Redis sentinel在進行故障轉移后,并沒有將master的信息通知到客戶端,那么故障轉移將毫無意義Python來實現?
代碼如下
# 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), ])#獲取主服務器信息 get_master_info = sentinel_list.discover_master('mymaster') print (get_master_info)#獲取從服務器信息 get_slave_info = sentinel_list.discover_slaves('mymaster') print (get_slave_info)#主服務器進行寫入 write_redis_master = sentinel_list.master_for('mymaster',password='123456',db=0) print ("主庫端口: %s" %(write_redis_master.info()['tcp_port'])) if write_redis_master.set('1','test123'):#從服務器進行讀取read_redis_slaves = sentinel_list.slave_for('mymaster',password='123456',db=0)print ("從庫端口:%s" %(read_redis_slaves.info()['tcp_port']))print (read_redis_slaves.get('1')) #執行結果如下
# ./redis_sentinel_client.py ('127.0.0.1', 6380) [('127.0.0.1', 6379), ('127.0.0.1', 6381)] 主庫端口: 6380 從庫端口:6381 b'test123' # ./redis_sentinel_client.py ('127.0.0.1', 6380) [('127.0.0.1', 6379), ('127.0.0.1', 6381)] 主庫端口: 6380 從庫端口:6379 b'test123' #?
轉載于:https://www.cnblogs.com/wang-li/p/9972018.html
總結
以上是生活随笔為你收集整理的Redis Sentinel 配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018.11.16 长难句4
- 下一篇: 三年了总觉的还是该写点什么