日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis Sentinel 配置文件

發布時間:2024/1/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 2

2.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 30000

SDOWN 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 3

3.sentinel parallel-syncs?

# sentinel parallel-syncs <master-name> <numslaves>在執行故障轉移時,可以同時有多少從服務器對新的主服務器進行數據同步,此值越小,同步時間越長,此值越大,同步時間越小,但是所耗費的網路資源也就越多默認配置: sentinel parallel-syncs mymaster 1

4.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 配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。