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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis的哨兵模式Sentinel

發(fā)布時間:2023/12/13 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis的哨兵模式Sentinel 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

sentinel功能

redis的sentinel系統(tǒng)用于管理多個redis服務(wù)器,該系統(tǒng)主要執(zhí)行三個任務(wù):監(jiān)控、提醒、自動故障轉(zhuǎn)移。

1、監(jiān)控(Monitoring): Redis Sentinel實時監(jiān)控主服務(wù)器和從服務(wù)器運行狀態(tài),并且實現(xiàn)自動切換

2、提醒(Notification):當(dāng)被監(jiān)控的某個 Redis 服務(wù)器出現(xiàn)問題時, Redis Sentinel 可以向系統(tǒng)管理員發(fā)送通知, 也可以通過 API 向其他程序發(fā)送通知。這個需要我們指定相關(guān)的代碼,比如發(fā)郵件、事務(wù)的處理等等

3、自動故障轉(zhuǎn)移(Automatic failover): 當(dāng)一個主服務(wù)器不能正常工作時,Redis Sentinel 可以將一個從服務(wù)器升級為主服務(wù)器, 并對其他從服務(wù)器進(jìn)行配置,讓它們使用新的主服務(wù)器。當(dāng)應(yīng)用程序連接Redis 服務(wù)器時, Redis Sentinel會告之新的主服務(wù)器地址和端口

注意:在使用sentinel監(jiān)控主從節(jié)點的時候,從節(jié)點需要是使用動態(tài)方式配置的,如果直接修改配置文件,后期sentinel實現(xiàn)故障轉(zhuǎn)移的時候會出問題

主觀下線和客觀下線:

1、主觀下線狀態(tài):當(dāng)一個sentinel認(rèn)為一個redis服務(wù)連接不上的時候,會給這個服務(wù)打個標(biāo)記為下線狀態(tài)。

2、客觀下線狀態(tài):當(dāng)多個sentinel認(rèn)為一個redids連接不上的時候,則認(rèn)為這個redis服務(wù)確實下線了。這里的多個sentinel的個數(shù)可以在配置文件中設(shè)置。一般集群中一半的從節(jié)點都認(rèn)為主機(jī)下線了,就進(jìn)行主機(jī)選舉機(jī)制,選出新的主機(jī)節(jié)點

sentinel配置

  • sentinel?monitor?mymaster?192.168.33.130?6379?2?????#最后一個參數(shù)視情況決定 ,一般為從節(jié)點數(shù)量的一半;最后一個參數(shù)為需要判定客觀下線所需的主觀下線sentinel個數(shù),這個參數(shù)不可以大于sentinel個數(shù)
  • 啟動sentinel? ??redis-sentinel?sentinel.conf

sentinel的一些命令

  • INFO? ?sentinel的基本狀態(tài)信息
  • SENTINEL?masters? ?列出所有被監(jiān)視的主服務(wù)器,以及這些主服務(wù)器的當(dāng)前狀態(tài)
  • SENTINEL?slaves?<master?name>??列出給定主服務(wù)器的所有從服務(wù)器,以及這些從服務(wù)器的當(dāng)前狀態(tài)
  • SENTINEL?get-master-addr-by-name?<master?name>??返回給定名字的主服務(wù)器的 IP 地址和端口號
  • SENTINEL?reset?<pattern>??重置所有名字和給定模式 pattern 相匹配的主服務(wù)器。重置操作清除主服務(wù)器目前的所有狀態(tài), 包括正在執(zhí)行中的故障轉(zhuǎn)移, 并移除目前已經(jīng)發(fā)現(xiàn)和關(guān)聯(lián)的, 主服務(wù)器的所有從服務(wù)器和 Sentinel
  • SENTINEL?failover?<master?name>??當(dāng)主服務(wù)器失效時, 在不詢問其他 Sentinel 意見的情況下, 強(qiáng)制開始一次自動故障遷移,但是它會給其他sentinel發(fā)送一個最新的配置,其他sentinel會根據(jù)這個配置進(jìn)行更新

具體操作

  • 新建sentinel文件夾,在其下新建20190、20191、20192和scripts文件夾,在文件夾的名字也是其對應(yīng)的端口名字,在端口名字文件夾下新建conf、data和logs文件夾
  • mkdir sentinel
  • mkdir -pv {20190,20191,20192}/{conf,data,logs}
  • 啟動方式redis-server 20190/conf/sentinel.conf --sentinel
  • 或者redis-sentinel 20190/cong]f/sentinel.conf
  • 在sentinel文件夾下,此時此文件下存放的就是20190、20191和20192文件夾,使用命令cp 20190/conf/sentinel.conf 20191/conf完成conf文件的拷貝,使用命令sed -i "s/20190/20191/g" 20191/conf/sentinel.conf完成將20190替換為20191的文本替換,完成即可,別的不需要動,具體內(nèi)容如下
#20190 #指定端口號 port 20190 #指定后臺運行 daemonize yes #指定內(nèi)網(wǎng)地址 bind 192.168.13.50 #指定數(shù)據(jù)文件夾 dir "/home/bfxy/servers/sentinel/20190/data" #指定日志問價夾 logfile "/home/bfxy/servers/sentinel/20190/logs/sentinel.log"#指定master的連接名字是mymaster,連接的地址和端口號,2代表如果兩個從節(jié)點認(rèn)為主節(jié)點失效了,就進(jìn)行master的選舉 sentinel monitor mymaster 192.168.13.50 10191 2 #設(shè)置超時時間20秒 sentinel failover-timeout mymaster 20000 #指定腳本文件 sentinel notification-script mymaster /home/bfxy/servers/sentinel/scripts/notify.sh # Generated by CONFIG REWRITE sentinel client-reconfig-script mymaster /home/bfxy/servers/sentinel/scripts/reconfig.sh sentinel config-epoch mymaster 0 sentinel leader-epoch mymaster 8 sentinel known-sentinel mymaster 192.168.13.50 20191 e3f1be1924eba40a3698be5d81433ce133289315 sentinel known-sentinel mymaster 192.168.13.50 20192 8d47dce1af43f144d7b868969740cefef7d0e034 sentinel current-epoch 8
  • 在src目錄下,使用命令redis-sentinel /user/local/redis-4.0.14/sentinel/20190/conf/sentinel.conf啟動服務(wù),20191和20192也是這樣操作
  • 在src目錄下,使用命令redis-cli? -h 192.168.133.130 -p 20190,使用客戶端連接到服務(wù)器??

?

總結(jié)

以上是生活随笔為你收集整理的Redis的哨兵模式Sentinel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。