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

深入理解Redis7哨兵模式(保姆級教學(xué))

 更新時(shí)間:2024年01月04日 14:58:47   作者:loss_rose777  
Redis的主從復(fù)制存在一定的缺陷,為了解決這一問題,Redis官方推薦一種高可用方案哨兵模式,本文主要介紹了深入理解Redis7哨兵模式,具有一定的參考價(jià)值,感興趣的可以了解一下

一定一定要把云服務(wù)器的防火墻打開一定要?。。。。。。。?!否則不成功?。。。。。。。?!

哨兵是什么

相當(dāng)于吹哨人,吹哨人巡查監(jiān)控后臺master主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將某一個(gè)庫,轉(zhuǎn)換為新主庫,繼續(xù)對外服務(wù)             ???????        ???????      

哨兵的作用

  • 主從監(jiān)控:監(jiān)控主從redis庫是否正常運(yùn)行
  • 消息通知:哨兵可以將故障轉(zhuǎn)移的結(jié)果發(fā)送給客戶端
  • 故障轉(zhuǎn)移:如果Master異常,則會(huì)進(jìn)行主從切換,將其中一個(gè)Slave作為新的Master
  • 配置中心:客戶端通過連接哨兵來獲得當(dāng)前Redis服務(wù)的主節(jié)點(diǎn)地址

案例演示

前期準(zhǔn)備

三個(gè)哨兵:自動(dòng)監(jiān)控和維護(hù)集群,不存放數(shù)據(jù),只是吹哨人

一主二從:用于數(shù)據(jù)讀取和存放

由于個(gè)人經(jīng)費(fèi)有限,只有三臺云服務(wù)器演示,這里我就將三臺哨兵配置到6379這個(gè)服務(wù)器上

案例步驟

1、/myredis目錄下新建或者拷貝sentinel.conf文件

2、配置文件修改

首先我們拷貝三份不同端口的代碼:

我們進(jìn)入每個(gè)代碼使用vim filename

將內(nèi)容刪除復(fù)制以下內(nèi)容:

bind 0.0.0.0
daemonize yes
protected-mode no
port 26379
logfile "/myredis/sentinel26379.log"
pidfile /var/run/redis-sentinel26379.pid
dir /myredis
sentinel monitor 主機(jī)名 62.234.60.208 6379 2
sentinel auth-pass 主機(jī)名 密碼

解釋一下最后兩個(gè)配置文件作用:

sentinel monitor <master-name><redis-port> <quorum> 設(shè)置要監(jiān)控的master服務(wù)器,quorum表示最少有幾個(gè)哨兵認(rèn)可客觀下線同意故障遷移的法定票數(shù)

master設(shè)置了密碼,連接master服務(wù)的密碼

 先啟動(dòng)一主二從三個(gè)redis實(shí)例,則是正常的主從復(fù)制

這里我們不能忘記之前主機(jī)的配置,6379后續(xù)可能會(huì)變成從機(jī),需要設(shè)置訪問新主機(jī)的密碼, 請?jiān)O(shè)置masterauth項(xiàng)訪問密碼你其他機(jī)器所設(shè)置密碼

master主機(jī)配置文件匯總

哨兵 啟動(dòng)

先啟動(dòng)三個(gè)哨兵,完成監(jiān)控 redis-sentinel sentinel26379.conf --sentine

啟動(dòng)三個(gè)哨兵之哦胡在測試一側(cè)主從復(fù)制

原有的master掛了

我們這里手動(dòng)關(guān)閉6379服務(wù)器,模擬master掛了

此時(shí)我們可以等待一下,哨兵投票

此時(shí)我們可以看出,當(dāng)主機(jī)down之后從機(jī)6381上位

我們看一下sentinel26379.log的日志

這是一段Redis Sentinel的日志,它記錄了Redis服務(wù)器和Sentinel的一些狀態(tài)變化。以下是一些關(guān)鍵事件的解釋:

  • sdown(主觀下線):Sentinel認(rèn)為某個(gè)服務(wù)器無法訪問,可能是網(wǎng)絡(luò)問題或者服務(wù)器崩潰。
  • Redis is starting:Redis服務(wù)器正在啟動(dòng)。
  • Warning: Could not create server TCP listening socket 0.0.0.0:26379: bind: Address already in use:Redis Sentinel試圖在端口26379上啟動(dòng),但是這個(gè)端口已經(jīng)被其他進(jìn)程使用了。
  • +new-epoch:Sentinel開始了新的紀(jì)元,這通常意味著主服務(wù)器失效,Sentinel正在選舉新的主服務(wù)器。
  • +vote-for-leader:Sentinel投票選舉新的領(lǐng)導(dǎo)者。
  • +switch-master:Sentinel已經(jīng)將主服務(wù)器從一個(gè)服務(wù)器切換到另一個(gè)服務(wù)器。
  • +slave:Sentinel識別到一個(gè)新的從服務(wù)器。

以下是這段Redis Sentinel日志中每一行的解釋:

  • 4346:X 30 Dec 2023 20:25:14.957 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo:Redis服務(wù)器(PID為4346)正在啟動(dòng)。

  • 4346:X 30 Dec 2023 20:25:14.957 # Redis version=7.0.14, bits=64, commit=00000000, modified=0, pid=4346, just started:顯示Redis服務(wù)器的版本信息,位數(shù),提交哈希,修改狀態(tài),進(jìn)程ID和啟動(dòng)狀態(tài)。

  • 4346:X 30 Dec 2023 20:25:14.957 # Configuration loaded:Redis服務(wù)器已成功加載配置文件。

  • 4346:X 30 Dec 2023 20:25:14.958 * monotonic clock: POSIX clock_gettime:Redis服務(wù)器正在使用POSIX的clock_gettime函數(shù)作為其單調(diào)時(shí)鐘源。

  • 4346:X 30 Dec 2023 20:25:14.958 # Warning: Could not create server TCP listening socket 0.0.0.0:26379: bind: Address already in use:Redis服務(wù)器試圖在端口26379上創(chuàng)建一個(gè)TCP監(jiān)聽套接字,但是這個(gè)端口已經(jīng)被其他進(jìn)程使用了。

  • 4346:X 30 Dec 2023 20:25:14.958 # Failed listening on port 26379 (TCP), aborting.:由于無法在端口26379上監(jiān)聽,Redis服務(wù)器正在終止。

  • 26979:X 30 Dec 2023 20:25:58.361 # +sdown master mymaster 62.234.60.208 6379:Sentinel進(jìn)程(PID為26979)報(bào)告主服務(wù)器(別名為mymaster,IP地址為62.234.60.208,端口號為6379)已經(jīng)主觀下線。

  • 26979:X 30 Dec 2023 20:25:58.487 * Sentinel new configuration saved on disk:Sentinel進(jìn)程已經(jīng)將新的配置保存到磁盤上。

  • 26979:X 30 Dec 2023 20:25:58.487 # +new-epoch 893:Sentinel進(jìn)程已經(jīng)開始了新的紀(jì)元(Epoch),編號為893。

  • 26979:X 30 Dec 2023 20:25:58.493 * Sentinel new configuration saved on disk:Sentinel進(jìn)程已經(jīng)將新的配置保存到磁盤上。

  • 26979:X 30 Dec 2023 20:25:58.494 # +vote-for-leader a380684d19db383c3e7110c9aee4af069db632d2 893:Sentinel進(jìn)程正在為領(lǐng)導(dǎo)者(ID為a380684d19db383c3e7110c9aee4af069db632d2)投票,紀(jì)元編號為893。

  • 26979:X 30 Dec 2023 20:25:59.395 # +config-update-from sentinel a380684d19db383c3e7110c9aee4af069db632d2 62.234.60.208 26381 @ mymaster 62.234.60.208 6379:Sentinel進(jìn)程已經(jīng)從另一個(gè)Sentinel(ID為a380684d19db383c3e7110c9aee4af069db632d2,IP地址為62.234.60.208,端口號為26381)那里更新了配置。

  • 26979:X 30 Dec 2023 20:25:59.395 # +switch-master mymaster 62.234.60.208 6379 121.43.60.247 6381:Sentinel進(jìn)程已經(jīng)將主服務(wù)器從62.234.60.208:6379切換到了121.43.60.247:6381。

  • 26979:X 30 Dec 2023 20:25:59.395 * +slave slave 118.31.6.132:6380 118.31.6.132 6380 @ mymaster 121.43.60.247 6381:Sentinel進(jìn)程識別到一個(gè)新的從服務(wù)器(IP地址為118.31.6.132,端口號為6380)。

  • 26979:X 30 Dec 2023 20:25:59.395 * +slave slave 62.234.60.208:6379 62.234.60.208 6379 @ mymaster 121.43.60.247 6381:Sentinel進(jìn)程識別到一個(gè)新的從服務(wù)器(IP地址為62.234.60.208,端口號為6379)。

  • 26979:X 30 Dec 2023 20:25:59.400 * Sentinel new configuration saved on disk:Sentinel進(jìn)程已經(jīng)將新的配置保存到磁盤上。

哨兵運(yùn)行流程和選舉原理

當(dāng)一個(gè)主從配置中的master失效之后,sentinel可以選舉出的一個(gè)新的master,用于自動(dòng)接替原master的工作,主從配置中的其他redis服務(wù)器自動(dòng)只想新的masterr同步數(shù)據(jù),一般建議sentinel采取奇數(shù)臺,防止某一臺sentinel物權(quán)法鏈接到master導(dǎo)致誤切換

運(yùn)行流程

三個(gè)哨兵監(jiān)控一主二從運(yùn)行中->主管下線->客觀下線->選出領(lǐng)導(dǎo)者哨兵->由領(lǐng)導(dǎo)者哨兵確定新master

主觀下線

SDown(主觀下線):單個(gè)Sentinel實(shí)例對服務(wù)器做出的下線判斷,即單個(gè)sentinel認(rèn)為某個(gè)服務(wù)下線(有可能是接收不到訂閱,之間的網(wǎng)絡(luò)不通等等原因)。主觀下線就是說如果服務(wù)器在[sentinel down-after-milliseconds]給定的毫秒數(shù)之內(nèi)沒有回應(yīng)PING命令或者返回一個(gè)錯(cuò)誤消息, 那么這個(gè)Sentinel會(huì)主觀的(單方面的)認(rèn)為這個(gè)master不可以用了

sentinel down-after-milliseconds <masterName> <timeout>

 表示master被當(dāng)前sentinel實(shí)例認(rèn)定為失效的間隔時(shí)間,這個(gè)配置其實(shí)就是進(jìn)行主觀下線的一個(gè)依據(jù)

master在多長時(shí)間內(nèi)一直沒有給Sentine返回有效信息,則認(rèn)定該master主觀下線。也就是說如果多久沒聯(lián)系上redis-servevr,認(rèn)為這個(gè)redis-server進(jìn)入到失效(SDOWN)狀態(tài)。

客觀下線

ODown(客觀下線):ODown需要一定數(shù)量的sentinel,多個(gè)哨兵達(dá)成一致意見才能認(rèn)為一個(gè)master客觀上已經(jīng)down掉

quorum這個(gè)參數(shù)是進(jìn)行客觀下線的一個(gè)依據(jù),法定人數(shù)/法定票數(shù)

意思是至少有quorum個(gè)sentinel認(rèn)為這個(gè)master有故障才會(huì)對這個(gè)master進(jìn)行下線以及故障轉(zhuǎn)移。因?yàn)橛械臅r(shí)候,某個(gè)sentinel節(jié)點(diǎn)可能因?yàn)樽陨砭W(wǎng)絡(luò)原因?qū)е聼o法連接master,而此時(shí)master并沒有出現(xiàn)故障,所以這就需要多個(gè)sentinel都一致認(rèn)為該master有問題,才可以進(jìn)行下一步操作,這就保證了公平性和高可用。

到此這篇關(guān)于深入理解Redis7哨兵模式(保姆級教學(xué))的文章就介紹到這了,更多相關(guān)Redis7哨兵模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis突現(xiàn)拒絕連接問題處理方案

    Redis突現(xiàn)拒絕連接問題處理方案

    這篇文章主要介紹了Redis突現(xiàn)拒絕連接問題處理方案,分析原因是由于redis與業(yè)務(wù)共一個(gè)服務(wù)器,內(nèi)存只有8G,業(yè)務(wù)服務(wù)啟動(dòng)過多,內(nèi)存不足導(dǎo)致redis拒絕連接,需要的朋友可以參考下
    2024-02-02
  • 使用redis實(shí)現(xiàn)附近的人功能

    使用redis實(shí)現(xiàn)附近的人功能

    這篇文章主要介紹了使用redis實(shí)現(xiàn)附近的人,實(shí)現(xiàn)諸如附近的人這類依賴于地理位置信息的功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • Redis 多規(guī)則限流和防重復(fù)提交方案實(shí)現(xiàn)小結(jié)

    Redis 多規(guī)則限流和防重復(fù)提交方案實(shí)現(xiàn)小結(jié)

    本文主要介紹了Redis 多規(guī)則限流和防重復(fù)提交方案實(shí)現(xiàn)小結(jié),包括使用String結(jié)構(gòu)和Zset結(jié)構(gòu)來記錄用戶IP的訪問次數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • Redis分片集群的實(shí)現(xiàn)

    Redis分片集群的實(shí)現(xiàn)

    Redis 分片集群是一種將 Redis數(shù)據(jù)庫分散到多個(gè)節(jié)點(diǎn)上的方式,以提供更高的性能和可伸縮性,本文主要介紹了Redis分片集群的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • 淺談Redis處理接口冪等性的兩種方案

    淺談Redis處理接口冪等性的兩種方案

    本文主要介紹了淺談Redis處理接口冪等性的兩種方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Redis列表類型的常用命令小結(jié)

    Redis列表類型的常用命令小結(jié)

    這篇文章給大家整理了在操作Redis列表類型中的常用命令,文章總結(jié)的很全面,對大家學(xué)習(xí)Redis具有一定的參考借鑒價(jià)值,下面來一起看看吧。
    2016-09-09
  • 安裝redis(windows和Ubuntu)詳解

    安裝redis(windows和Ubuntu)詳解

    這篇文章主要介紹了Redis在Ubuntu和Windows下的安裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Centos7 Redis主從搭建配置的實(shí)現(xiàn)

    Centos7 Redis主從搭建配置的實(shí)現(xiàn)

    這篇文章主要介紹了Centos7 Redis主從搭建配置的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Redis如何在項(xiàng)目中合理使用經(jīng)驗(yàn)分享

    Redis如何在項(xiàng)目中合理使用經(jīng)驗(yàn)分享

    這篇文章主要給大家介紹了關(guān)于Redis如何在項(xiàng)目中合理使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別

    Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別

    這篇文章主要介紹了Redis?的內(nèi)存淘汰策略和過期刪除策略的區(qū)別,Redis?是可以對?key?設(shè)置過期時(shí)間的,因此需要有相應(yīng)的機(jī)制將已過期的鍵值對刪除,而做這個(gè)工作的就是過期鍵值刪除策略
    2022-07-07

最新評論