亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談Redis哨兵模式的使用

 更新時間:2020年12月17日 11:09:57   作者:將暮  
這篇文章主要介紹了淺談Redis哨兵模式的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

概述

主從切換技術的方法是:當主服務器宕機后,需要手動把一臺從服務器切換為主服務器,這就需要人工 干預,費事費力,還會造成一段時間內(nèi)服務不可用。這不是一種推薦的方式,更多時候,我們優(yōu)先考慮 哨兵模式。Redis從2.8開始正式提供了Sentinel(哨兵) 架構來解決這個問題。

謀朝篡位的自動版,能夠后臺監(jiān)控主機是否故障,如果故障了根據(jù)投票數(shù)自動將從庫轉(zhuǎn)換為主庫。

哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個獨立的進程,作為進程,它會獨 立運行。其原理是哨兵通過發(fā)送命令,等待Redis服務器響應,從而監(jiān)控運行的多個Redis實例。

在這里插入圖片描述

這里的哨兵有兩個作用

通過發(fā)送命令,讓Redis服務器返回監(jiān)控其運行狀態(tài),包括主服務器和從服務器。

當哨兵監(jiān)測到master宕機,會自動將slave切換成master,然后通過發(fā)布訂閱模式通知其他的從服務器,修改配置文件,讓它們切換主機。

然而一個哨兵進程對Redis服務器進行監(jiān)控,可能會出現(xiàn)問題,為此,我們可以使用多個哨兵進行監(jiān)控。 各個哨兵之間還會進行監(jiān)控,這樣就形成了多哨兵模式。

在這里插入圖片描述

假設主服務器宕機,哨兵1先檢測到這個結(jié)果,系統(tǒng)并不會馬上進行failover過程,僅僅是哨兵1主觀的認為主服務器不可用,這個現(xiàn)象成為主觀下線。

當哨兵1檢測到主服務器宕機這是哨兵1認為主服務器不可用為主觀下線。當多個哨兵檢測到主服務器不可用,并且達到一定數(shù)量時,就會投票選取新的主機這個過程稱為客觀下線。

測試

1.當前還是一主而從。6379為主機,80,81為從機。配置哨兵配置文件 sentinel.conf

在這里插入圖片描述

在這里插入圖片描述

后面的這個數(shù)字1,代表主機掛了,slave投票看讓誰接替成為主機,票數(shù)最多的,就會成為主機!

2.啟動哨兵redis-sentinel kconfig/sentinel.conf

在這里插入圖片描述

3.關閉6379主機,查看信息

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

4.6379重新開機,查看信息

在這里插入圖片描述

在這里插入圖片描述

結(jié)論:

當啟用哨兵模式之后,主機如果意外宕機,哨兵監(jiān)測到主機出現(xiàn)故障,會發(fā)起投票選出新的主機,并把已有的從機全部綁定到新選出的從機,包括宕機掉的舊主機也變成了新主機的從機。所以當舊主機重新開機之后,查看信息就發(fā)現(xiàn)變成了新主機的從機。

優(yōu)缺點

優(yōu)點

1.哨兵集群,基于主從復制模式,所有的主從配置優(yōu)點
它全有主從可以切換,故障可以轉(zhuǎn)移,系統(tǒng)的可用性就會更好
2.哨兵模式就是主從模式的升級,手動到自動,更加健壯!

缺點

Redis 不好啊在線擴容的,集群容量一旦到達上限,在線擴容就十分麻煩!

實現(xiàn)哨兵模式的配置其實是很麻煩的,里面有很多選擇!

哨兵模式的全部配置

# Example sentinel.conf
# 哨兵sentinel實例運行的端口 默認26379
port 26379
# 哨兵sentinel的工作目錄
dir /tmp
# 哨兵sentinel監(jiān)控的redis主節(jié)點的 ip port
# master-name 可以自己命名的主節(jié)點名字 只能由字母A-z、數(shù)字0-9 、這三個字符".-_"組成。
# quorum 配置多少個sentinel哨兵統(tǒng)一認為master主節(jié)點失聯(lián) 那么這時客觀上認為主節(jié)點失聯(lián)了
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
# 當在Redis實例中開啟了requirepass foobared 授權密碼 這樣所有連接Redis實例的客戶端都要提供密碼
# 設置哨兵sentinel 連接主從的密碼 注意必須為主從設置一樣的驗證密碼
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
# 指定多少毫秒之后 主節(jié)點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節(jié)點下線 默認30秒
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
# 這個配置項指定了在發(fā)生failover主備切換時最多可以有多少個slave同時對新的master進行 同步,這個數(shù)字越小,完成failover所需的時間就越長,但是如果這個數(shù)字越大,就意味著越 多的slave因為replication而不可用??梢酝ㄟ^將這個值設為 1 來保證每次只有一個slave 處于不能處理命令請求的狀態(tài)。
# sentinel parallel-syncs <master-name> <numslaves>
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時時間 failover-timeout 可以用在以下這些方面:
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當一個slave從一個錯誤的master那里同步數(shù)據(jù)開始計算時間。直到slave被糾正為向正確的master那里同步數(shù)據(jù)時。
#3.當想要取消一個正在進行的failover所需要的時間。
#4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規(guī)則來了
# 默認三分鐘
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
# SCRIPTS EXECUTION
#配置當某一事件發(fā)生時所需要執(zhí)行的腳本,可以通過腳本來通知管理員,例如當系統(tǒng)運行不正常時發(fā)郵件通知相關人員。
#對于腳本的運行結(jié)果有以下規(guī)則:
#若腳本執(zhí)行后返回1,那么該腳本稍后將會被再次執(zhí)行,重復次數(shù)目前默認為10
#若腳本執(zhí)行后返回2,或者比2更高的一個返回值,腳本將不會重復執(zhí)行。
#如果腳本在執(zhí)行過程中由于收到系統(tǒng)中斷信號被終止了,則同返回值為1時的行為相同。
#一個腳本的最大執(zhí)行時間為60s,如果超過這個時間,腳本將會被一個SIGKILL信號終止,之后重新執(zhí)行。
#通知型腳本:當sentinel有任何警告級別的事件發(fā)生時(比如說redis實例的主觀失效和客觀失效等等),將會去調(diào)用這個腳本,這時這個腳本應該通過郵件,SMS等方式去通知系統(tǒng)管理員關于系統(tǒng)不正常運行的信息。調(diào)用該腳本時,將傳給腳本兩個參數(shù),一個是事件的類型,一個是事件的描述。如果sentinel.conf配置文件中配置了這個腳本路徑,那么必須保證這個腳本存在于這個路徑,并且是可執(zhí)行的,否則sentinel無法正常啟動成功。
#通知腳本
# shell編程
# sentinel notification-script <master-name> <script-path>
sentinel notification-script mymaster /var/redis/notify.sh
# 客戶端重新配置主節(jié)點參數(shù)腳本
# 當一個master由于failover而發(fā)生改變時,這個腳本將會被調(diào)用,通知相關的客戶端關于master地址已
經(jīng)發(fā)生改變的信息。
# 以下參數(shù)將會在調(diào)用腳本時傳給腳本:
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
# 目前<state>總是“failover”,
# <role>是“l(fā)eader”或者“observer”中的一個。
# 參數(shù) from-ip, from-port, to-ip, to-port是用來和舊的master和新的master(即舊的slave)通信的
# 這個腳本應該是通用的,能被多次調(diào)用,不是針對性的。
# sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script mymaster /var/redis/reconfig.sh # 一般都是由運維來配置!

到此這篇關于淺談Redis哨兵模式的使用的文章就介紹到這了,更多相關Redis哨兵模式 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

本文鏈接:https://blog.csdn.net/wsad861512140

相關文章

  • Redis 執(zhí)行性能測試

    Redis 執(zhí)行性能測試

    這篇文章主要介紹了Redis 執(zhí)行性能測試的方法,文中講解非常細致,幫助大家更好的理解和學習redis,感興趣的朋友可以了解下
    2020-08-08
  • redis實現(xiàn)session共享的方法

    redis實現(xiàn)session共享的方法

    本文主要介紹了redis實現(xiàn)session共享的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 爬蟲技術之分布式爬蟲架構的講解

    爬蟲技術之分布式爬蟲架構的講解

    今天小編就為大家分享一篇關于爬蟲技術之分布式爬蟲架構的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • redis中redis-cli使用小結(jié)

    redis中redis-cli使用小結(jié)

    redis-cli 是Redis命令行界面,一個簡單的程序,允許直接從終端向Redis發(fā)送命令,并讀取服務器發(fā)送的回復,本文主要介紹了redis中redis-cli使用小結(jié),感興趣的可以了解一下
    2023-10-10
  • redis服務如何啟動

    redis服務如何啟動

    這篇文章主要介紹了redis服務如何啟動問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Redis三種特殊數(shù)據(jù)類型的具體使用

    Redis三種特殊數(shù)據(jù)類型的具體使用

    本文主要介紹了Redis三種特殊數(shù)據(jù)類型的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Centos7下Redis3.2.8最新版本安裝教程

    Centos7下Redis3.2.8最新版本安裝教程

    這篇文章主要為大家詳細介紹了Centos7下Redis3.2.8最新版本的安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Redis實現(xiàn)全局唯一Id的使用示例

    Redis實現(xiàn)全局唯一Id的使用示例

    全局唯一ID有多個方法可供選擇,其中一種是使用Redis,本文就來介紹一下Redis實現(xiàn)全局唯一Id的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • Java Socket實現(xiàn)Redis客戶端的詳細說明

    Java Socket實現(xiàn)Redis客戶端的詳細說明

    socket編程是一門技術,它主要是在網(wǎng)絡通信中經(jīng)常用到.這篇文章主要介紹了如何用Java Socket實現(xiàn)一個簡單的Redis客戶端,需要的朋友可以參考下
    2021-05-05
  • 基于Redis分布式鎖的實現(xiàn)代碼

    基于Redis分布式鎖的實現(xiàn)代碼

    這篇文章主要介紹了Redis分布式鎖的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論