Redis學習筆記(十四)Sentinel(哨兵)(上)

来源:https://www.cnblogs.com/xtt321/archive/2020/05/23/12940639.html
-Advertisement-
Play Games

最近談到Redis就會聽到哨兵模式,工作期間同事也分享過關於哨兵模式的知識,但由於工作忙(給自己找個藉口)沒有沒認真看,現在惡補下,老樣子還是分上篇應用,下篇看實現過程,下麵我們來看下哨兵到底是啥? 哨兵模式(Sentinel)是Redis的高可用解決方案。由一個或多個Sentinel實例組成的Se ...


最近談到Redis就會聽到哨兵模式,工作期間同事也分享過關於哨兵模式的知識,但由於工作忙(給自己找個藉口)沒有沒認真看,現在惡補下,老樣子還是分上篇應用,下篇看實現過程,下麵我們來看下哨兵到底是啥?

哨兵模式(Sentinel)是Redis的高可用解決方案。由一個或多個Sentinel實例組成的Sentinel系統,可以監控任意多個主伺服器,以及這些主伺服器下的所有從伺服器,當某個主伺服器下線時,自動將這個主伺服器下的某個從伺服器升級為新的主伺服器,代替下線的主伺服器繼續處理命令。另外Sentinel系統還會繼續監視已下線的主伺服器,當主伺服器恢復時,它將被降級成該主伺服器的從伺服器。

在看哨兵模式的實現過程之前,我們先看一下哨兵的用法

1、我們將redis.windows.conf配置文件拷貝3份出來,改下名字便於識別:6379.conf,6380,conf,6381.conf。(這裡我們模擬使用經典的三節點搭建)

6379.conf我們使用預設配置的6379埠,分別改下 6380,conf與6381.conf的埠號

 

 

 

 上一章我們使用slaveof <masterip> <masterport>命令設置從節點,現在我們修改6380.conf與6391.conf,將複製命令配置在文件中,將6379作為主節點:

 

 

2、下麵我們執行命令,啟動三個節點:

redis-server.exe 6379.conf 

redis-server.exe 6380.conf 

redis-server.exe 6381.conf

 

 

 

 

 

 

 

 

 好了,現在三個節點都已經啟動,並且從控臺上看出,從節點已經在複製主節點的數據。

3、分別創建三個Sentinel配置文件:sentinel6379.conf ,sentinel6380.conf ,sentinel3381.conf

內容分別是:

 sentinel6379.conf

port 26379
#當前Sentinel服務運行的埠
port 26379  
# 哨兵監聽的主伺服器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒內無相應,則認為主站點宕機
sentinel down-after-milliseconds mymaster 3000
#如果10秒後,mysater仍沒啟動過來,則啟動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主伺服器進行同
sentinel parallel-syncs mymaster 1

sentinel6380.conf

#當前Sentinel服務運行的埠
port 26380
# 哨兵監聽的主伺服器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒內無相應,則認為主站點宕機
sentinel down-after-milliseconds mymaster 3000
#如果10秒後,mysater仍沒啟動過來,則啟動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主伺服器進行同
sentinel parallel-syncs mymaster 1

sentinel3381.conf

port 26381
# 哨兵監聽的主伺服器
sentinel monitor mymaster 127.0.0.1 6379 2
#如果在3秒內無相應,則認為主站點宕機
sentinel down-after-milliseconds mymaster 3000
#如果10秒後,mysater仍沒啟動過來,則啟動failover 
sentinel failover-timeout mymaster 10000  
#執行故障轉移時,最多有一臺對新的主伺服器進行同步
sentinel parallel-syncs mymaster 1

3、執行命令啟動:

redis-server.exe sentinel6379.conf --sentinel

 

 

 redis-server.exe sentinel6380.conf --sentinel

 

 

 redis-server.exe sentinel6381.conf --sentinel

 

 

 4、校驗:

先看下主伺服器6379的信息:

 

 

 切換到6380與6381我們看下:

 

 

 

 

 

 現在我們模擬主伺服器6379宕機(關閉掉6379的服務端),觀察6380與6381的反應。

 

 

 

 

 

 從以上信息來看,6381被選舉為主伺服器,那麼現在我們分別看下6380與6381的信息:

 

 

 此時監聽信息為:

 

 

 下一步我們恢復6379看看會發生什麼:

 

 

 

 現在看下監聽信息:

 

此時發現6379被設置為從伺服器。

 

 

現在我們redis-cli 連接到6379看下:

 

 

OK完工,暫時只模擬這一種宕機情況。

 

篇幅有些長,不知道有多少同學能看到這裡。

 


 

 

每天學一點,總會有收穫。

 

下一步我們看下Redis的Sentinel(哨兵)的實現過程

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何在Vmware克隆一個虛擬機,並修改哪些配置。 克隆虛擬機步驟 其中模板虛擬機的安裝部署可參見:「VMware安裝Linux CentOS 7.7系統」 找到克隆的模板機,並選擇克隆。 進入克隆虛擬機嚮導 選擇現有快照(如果有多個快照,請根據需要選擇),而不是虛擬機的當前狀態(該狀態可能已經被你 ...
  • 大家好,我是良許。 作為 Linux 用戶,大家肯定在 Linux 終端下敲過無數的命令。有的命令很短,比如: 、 、 之類,這種命令大家毫無壓力。但是,有些命令就比較長了,比如: 這個時候,你要是敲錯了哪怕是一個字母,是不是很崩潰? 以前我的作法是,如果敲錯了命令,就把游標移動到錯誤的地方,再進行 ...
  • 在看 apue 第 21 章 與網路印表機通信一章時,發現一段關於鏈表操作的代碼有問題,現在摘出來讓大家 review 一下。先上代碼: printd.c 這是列印服務的源代碼,在列印時,用戶通過 print 命令提交待列印的文件,print 命令通過 tcp 與 printd 服務通訊, 將文件及 ...
  • STM32 HAL庫 +freeRTOS+Keil 移植 官方freeRTOS移植教程很多,本文不做贅述。本文基於Keil 5提供的freeRTOS庫,進行移植。 Keil 版本:Keil MDK uVision5 首先準備好一個可以用的HAL庫工程,為了方便調試,選擇了原子哥的開發板上提供跑馬燈工 ...
  • 一、用戶操作1.增加用戶 useradd [username] 2.設置用戶密碼 passwd [username] 3.刪除用戶 userdel [username] 4.查看所有用戶 cat /etc/passwd 5.查看當前活躍用戶 w 6.查看簡明用戶列表cat /etc/passwd|g ...
  • 功能描述:切換目錄 語法:cd [目標目錄] “[ ]”為可選項。 說明:cd命令可以讓用戶在不同的目錄間來回切換,不過該用戶需要有足夠的許可權才能進入目標目錄。 示例1:從當前目錄切換至/tmp目錄 cd :不帶任何參數時表示切換回用戶的家目錄。 cd \~ :切換回自己的家目錄。註意:在bash中 ...
  • [toc] route命令 功能說明:顯示或管理路由表,路由表是在內核中的,route命令會立刻修改內核中的路由表,立即生效,系統重啟後失效。 用法 route [ n] route add [ net| host] target [netmask Nm] [gw Gw] [[dev] If] ro ...
  • 下載Redis安裝包並解壓 在 /opt/soft 內下載 "redis 5.0.5" 解壓完之後, /opt/module/ ⽬錄中會出現⼀個 的⽬錄 編譯並安裝 將Redis 安裝為系統服務並後臺啟動 設置允許遠程連接與訪問密碼 檢驗安裝結果 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...