最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

哨兵是什么

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

哨兵的作用

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

案例演示

前期準(zhǔn)備

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

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

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

案例步驟

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

2、配置文件修改

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

我們進入每個代碼使用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 主機名 62.234.60.208 6379 2
sentinel auth-pass 主機名 密碼

解釋一下最后兩個配置文件作用:

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

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

 先啟動一主二從三個redis實例,則是正常的主從復(fù)制

這里我們不能忘記之前主機的配置,6379后續(xù)可能會變成從機,需要設(shè)置訪問新主機的密碼, 請設(shè)置masterauth項訪問密碼你其他機器所設(shè)置密碼

master主機配置文件匯總

哨兵 啟動

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

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

原有的master掛了

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

此時我們可以等待一下,哨兵投票

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

我們看一下sentinel26379.log的日志

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

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

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

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

  • 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),進程ID和啟動狀態(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)時鐘源。

  • 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)建一個TCP監(jiān)聽套接字,但是這個端口已經(jīng)被其他進程使用了。

  • 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進程(PID為26979)報告主服務(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īng)將新的配置保存到磁盤上。

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

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

  • 26979:X 30 Dec 2023 20:25:58.494 # +vote-for-leader a380684d19db383c3e7110c9aee4af069db632d2 893:Sentinel進程正在為領(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īng)從另一個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ī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進程識別到一個新的從服務(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進程識別到一個新的從服務(wù)器(IP地址為62.234.60.208,端口號為6379)。

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

哨兵運行流程和選舉原理

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

運行流程

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

主觀下線

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

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

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

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

客觀下線

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

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

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

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

相關(guān)文章

  • Redis實現(xiàn)自動清理過期鍵值對的代碼示例

    Redis實現(xiàn)自動清理過期鍵值對的代碼示例

    在這個數(shù)據(jù)爆炸的時代,內(nèi)存就像珍貴的土地資源,而Redis則是這片土地上的智能管家,它不僅能高效存儲數(shù)據(jù),還能像秋葉定時凋零般,讓鍵值對在指定時間自動消失,本文小編給大家介紹了Redis實現(xiàn)自動清理過期鍵值對實戰(zhàn),需要的朋友可以參考下
    2025-06-06
  • 深入解析Redisson分布式鎖看門狗機制

    深入解析Redisson分布式鎖看門狗機制

    本文主要介紹了深入解析Redisson分布式鎖看門狗機制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • 利用Redis如何實現(xiàn)自動補全功能

    利用Redis如何實現(xiàn)自動補全功能

    這篇文章主要給大家介紹了關(guān)于如何利用Redis如何實現(xiàn)自動補全功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • redis通過lua腳本,獲取滿足key pattern的所有值方式

    redis通過lua腳本,獲取滿足key pattern的所有值方式

    這篇文章主要介紹了redis通過lua腳本,獲取滿足key pattern的所有值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • redis數(shù)據(jù)類型及應(yīng)用場景知識點總結(jié)

    redis數(shù)據(jù)類型及應(yīng)用場景知識點總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于
    2020-02-02
  • Redis實現(xiàn)數(shù)據(jù)的交集、并集、補集的示例

    Redis實現(xiàn)數(shù)據(jù)的交集、并集、補集的示例

    本文主要介紹了Redis實現(xiàn)數(shù)據(jù)的交集、并集、補集的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • shell腳本批量導(dǎo)出redis key-value方式

    shell腳本批量導(dǎo)出redis key-value方式

    為避免keys全量掃描導(dǎo)致Redis卡頓,可先通過dump.rdb備份文件在本地恢復(fù),再使用scan命令漸進導(dǎo)出key-value,通過CNT和INTERVAL參數(shù)控制負(fù)載,且scan不指定游標(biāo)可減少阻塞
    2025-08-08
  • Redis 高可用與集群原理深度解析

    Redis 高可用與集群原理深度解析

    Redis高可用機制涵蓋主從復(fù)制、哨兵自動故障轉(zhuǎn)移及Cluster集群分片與高可用,依賴Gossip協(xié)議實現(xiàn)節(jié)點通信與狀態(tài)同步,源碼解析了故障轉(zhuǎn)移流程,為后續(xù)持久化內(nèi)容奠定基礎(chǔ),本文給大家介紹Redis高可用與集群原理,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Redis的五種基本數(shù)據(jù)類型解讀(String、List、Hash、Set、ZSet)

    Redis的五種基本數(shù)據(jù)類型解讀(String、List、Hash、Set、ZSet)

    本文詳細(xì)介紹了Redis的五種基本數(shù)據(jù)類型(String、List、Hash、Set、ZSet),包括它們的常用指令、應(yīng)用場景以及在Java中的實現(xiàn),通過實操示例,幫助讀者更好地理解和使用Redis
    2025-12-12
  • 如何查看redis服務(wù)的版本

    如何查看redis服務(wù)的版本

    這篇文章主要介紹了如何查看redis服務(wù)的版本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

英山县| 乌兰县| 嵊州市| 平南县| 瑞昌市| 峨眉山市| 阿拉善盟| 南通市| 阳春市| 类乌齐县| 陇西县| 廊坊市| 乌拉特前旗| 峨山| 达尔| 集安市| 北票市| 灵寿县| 那曲县| 泗水县| 广丰县| 新源县| 随州市| 磐石市| 城固县| 襄城县| 托里县| 仪陇县| 丰镇市| 远安县| 绩溪县| 弥渡县| 嘉定区| 从江县| 衡阳县| 姜堰市| 射洪县| 阳高县| 南木林县| 大庆市| 鹤山市|