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

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

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

一定一定要把云服務器的防火墻打開一定要?。。。。。。。。》駝t不成功?。。。。。。。。?/p>

哨兵是什么

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

哨兵的作用

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

案例演示

前期準備

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

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

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

案例步驟

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

2、配置文件修改

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

我們進入每個代碼使用vim filename

將內(nèi)容刪除復制以下內(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> 設置要監(jiān)控的master服務器,quorum表示最少有幾個哨兵認可客觀下線同意故障遷移的法定票數(shù)

master設置了密碼,連接master服務的密碼

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

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

master主機配置文件匯總

哨兵 啟動

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

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

原有的master掛了

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

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

此時我們可以看出,當主機down之后從機6381上位

我們看一下sentinel26379.log的日志

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

  • sdown(主觀下線):Sentinel認為某個服務器無法訪問,可能是網(wǎng)絡問題或者服務器崩潰。
  • Redis is starting:Redis服務器正在啟動。
  • 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開始了新的紀元,這通常意味著主服務器失效,Sentinel正在選舉新的主服務器。
  • +vote-for-leader:Sentinel投票選舉新的領(lǐng)導者。
  • +switch-master:Sentinel已經(jīng)將主服務器從一個服務器切換到另一個服務器。
  • +slave:Sentinel識別到一個新的從服務器。

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

  • 4346:X 30 Dec 2023 20:25:14.957 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo:Redis服務器(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服務器的版本信息,位數(shù),提交哈希,修改狀態(tài),進程ID和啟動狀態(tài)。

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

  • 4346:X 30 Dec 2023 20:25:14.958 * monotonic clock: POSIX clock_gettime:Redis服務器正在使用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服務器試圖在端口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服務器正在終止。

  • 26979:X 30 Dec 2023 20:25:58.361 # +sdown master mymaster 62.234.60.208 6379:Sentinel進程(PID為26979)報告主服務器(別名為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)開始了新的紀元(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)導者(ID為a380684d19db383c3e7110c9aee4af069db632d2)投票,紀元編號為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)將主服務器從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進程識別到一個新的從服務器(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進程識別到一個新的從服務器(IP地址為62.234.60.208,端口號為6379)。

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

哨兵運行流程和選舉原理

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

運行流程

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

主觀下線

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

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

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

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

客觀下線

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

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

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

到此這篇關(guān)于深入理解Redis7哨兵模式(保姆級教學)的文章就介紹到這了,更多相關(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分布式鎖看門狗機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-06-06
  • 利用Redis如何實現(xiàn)自動補全功能

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

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

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

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

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

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

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

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

    shell腳本批量導出redis key-value方式

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

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

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

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

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

    如何查看redis服務的版本

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

最新評論

神农架林区| 东乌| 赤峰市| 孝义市| 邹平县| 庆阳市| 象州县| 和林格尔县| 阳春市| 游戏| 伊通| 油尖旺区| 阳谷县| 迁安市| 巴东县| 资兴市| 塔城市| 拜泉县| 库尔勒市| 格尔木市| 南江县| 古蔺县| 龙游县| 花莲县| 石棉县| 上高县| 麻阳| 华池县| 无为县| 巴青县| 缙云县| 府谷县| 儋州市| 景谷| 澄城县| 沙坪坝区| 秭归县| 清水河县| 张家界市| 本溪市| 湖口县|