Redis(43)Redis哨兵(Sentinel)是什么?

Redis Sentinel(哨兵)是一種用于管理 Redis 實例的高可用性解決方案。它提供了監控、通知和自動故障轉移等功能,確保 Redis 服務在發生故障時能夠自動恢復,提供高可用性和可靠性。以下是詳細介紹 Redis Sentinel 的功能及其代碼示例。

Redis Sentinel 的功能

  1. 監控(Monitoring)

    • Sentinel 會持續監控主節點和從節點的運行狀態,檢查它們是否正常工作。
  2. 通知(Notification)

    • 如果 Sentinel 檢測到某個節點發生故障,它會通過 API 向系統管理員或其他應用程序發送通知。
  3. 自動故障轉移(Automatic Failover)

    • 如果主節點發生故障,Sentinel 會將其中一個從節點提升為新的主節點,并將其他從節點指向新的主節點。
  4. 配置提供者(Configuration Provider)

    • Sentinel 允許客戶端應用程序查詢當前 Redis 集群的狀態信息,以便客戶端能夠始終連接到正確的主節點。

Sentinel 配置示例

1. 配置 Redis 實例

配置主從架構的 Redis 實例。

主節點配置(master.conf)

port 6379
bind 127.0.0.1
dir /var/lib/redis
appendonly yes

從節點配置(slave.conf)

port 6380
bind 127.0.0.1
dir /var/lib/redis
appendonly yes
slaveof 127.0.0.1 6379

啟動主從節點:

redis-server master.conf
redis-server slave.conf
2. 配置和啟動 Sentinel

創建 Sentinel 配置文件(sentinel.conf):

port 26379
dir /tmp
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000

啟動 Sentinel:

redis-sentinel sentinel.conf
3. Java 代碼示例:使用 Jedis 連接帶有 Sentinel 的 Redis 集群

以下 Java 代碼展示了如何使用 Jedis 庫連接和操作帶有 Sentinel 的 Redis 集群。

import redis.clients.jedis.JedisSentinelPool;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.HostAndPort;import java.util.HashSet;
import java.util.Set;public class RedisSentinelExample {public static void main(String[] args) {// 定義 Sentinel 節點Set<String> sentinels = new HashSet<>();sentinels.add("127.0.0.1:26379");// 創建 JedisSentinelPool 對象JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels);try (Jedis jedis = pool.getResource()) {// 操作 Redisjedis.set("key", "value");String value = jedis.get("key");System.out.println("Get key: " + value);} finally {// 關閉連接池pool.close();}}
}

詳細解釋

  1. 監控

    • Sentinel 持續監控主節點和從節點的運行狀態。配置文件中的 sentinel monitor mymaster 127.0.0.1 6379 2 表示 Sentinel 監控的主節點是 127.0.0.1:6379,并且至少需要 2 個 Sentinel 同意主節點失效,才會進行故障轉移。
  2. 通知

    • sentinel down-after-milliseconds mymaster 5000 配置了 Sentinel 判斷主節點失效的時間閾值(毫秒)。超出這個時間后,Sentinel 會認為主節點失效并發送通知。
  3. 自動故障轉移

    • sentinel failover-timeout mymaster 60000 配置了 Sentinel 進行故障轉移的超時時間。故障轉移過程中,Sentinel 會將其中一個從節點提升為新的主節點,并將其他從節點指向新的主節點。
  4. 配置提供者

    • 客戶端應用程序(如 Java 代碼中的 JedisSentinelPool)可以通過 Sentinel 獲取當前主節點的信息,并確保連接的是正確的主節點。

故障轉移的示例

為了測試自動故障轉移,您可以強制關閉 Redis 主節點,觀察 Sentinel 的行為。

# 停止 Redis 主節點
redis-cli -p 6379 shutdown

此時,Sentinel 會檢測到主節點失效,并自動提升從節點為新的主節點,然后重新配置集群。

總結

Redis Sentinel 提供了一種高可用性解決方案,通過監控、通知、自動故障轉移和配置提供等功能,確保 Redis 服務的可靠性。通過配置 Sentinel 和使用 Jedis 庫,客戶端應用程序可以方便地連接和操作帶有 Sentinel 的 Redis 集群,從而實現高可用性和自動故障恢復。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95927.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95927.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95927.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

蓓韻安禧DHA純植物藻油純凈安全零添加守護母嬰健康

在母嬰健康領域&#xff0c;選擇合適的營養補充品至關重要。純植物藻油DHA源自純凈藻類&#xff0c;有效規避了海洋重金屬污染的風險&#xff0c;確保安全無隱患。配方堅持零添加香精、色素和防腐劑&#xff0c;避免不必要的化學物質攝入&#xff0c;讓媽媽和寶寶更安心。同時&…

釘釘 AI 深度賦能制造業 LTC 全流程:以釘釘宜搭、Teambition 為例

制造業 LTC 流程痛點剖析?在制造業&#xff0c;線索到現金&#xff08;LTC&#xff0c;Lead to Cash&#xff09;的全流程包含從潛在客戶線索的發現、商機培育、銷售轉化、訂單執行到最終收款的一系列復雜環節。傳統制造業在這一流程中面臨諸多挑戰&#xff1a;客戶需求的多樣…

理解UE4中C++17的...符號及enable_if_t的用法及SFINAE思想

下面是一段C17的代碼&#xff1a;//函數1&#xff1a;template <typename... BufferTypes,std::enable_if_t<std::conjunction<CanAppendBufferType<std::decay_t<BufferTypes>>...>::value> * nullptr> inline explicit FCompositeBuffer(Buff…

安全419正式公布《甲方安全建設精品采購指南》案例首推運營商行業數據安全核心推薦廠商

在數字經濟加速滲透與《網絡數據安全管理條例》全面實施的雙重背景下&#xff0c;運營商作為數據要素流通的核心樞紐&#xff0c;其安全防護體系建設已成為數字基礎設施保障的關鍵環節。近日&#xff0c;安全 419 正式公布《甲方安全建設精品采購指南》&#xff0c;從近 300 個…

基礎詞根-匯總

ros rus粗糙 ris cos cus cis切lite文字 late面 側面ven 來 cess走/agdotect 覆蓋 covercele 聚集 加速 gre 聚集&#xff0c;accumu聚集gress 抵達 靠近&#xff0c;aggressive侵略性humor humir 大地 土地chron 時間 time&#xff0c;宇宙的宙lumi 光lightviv vil volun vot/…

JVM中常見的GC垃圾收集器

文章目錄 目錄 1. Serial GC&#xff08;串行收集器&#xff09; 2. Parallel GC&#xff08;并行收集器&#xff09; 3. CMS&#xff08;Concurrent Mark-Sweep&#xff0c;并發標記 - 清除&#xff09; 4. G1&#xff08;Garbage-First&#xff0c;垃圾優先&#xff09; …

嵌入式C語言之鏈表冒泡排序

鏈表冒泡排序一是可以交換指針域的值&#xff0c;二是可以交換指針typedef struct st_node{int score;struce st_node *next;}Node,*LinkList;LinkList createList(){Node *head (Node *)malloc(sizeof(Node));if(NULL head){printf("內存分配失敗!"):return NULL;…

遠場代碼學習_FDTD_farfield

項目4.2 farfield3d - Script command在3D模擬中將給定的功率或場剖面監視器或直線數據集投射到遠場。返回電場強度|E| 2。語法描述 out farfield3d("mname",f, na, nb, illumination, periodsa, periodsb, index, direction)&#xff1b; 將給定的功率或場分布監…

Adobe Illustrator(Ai) 2022安裝教程與下載地址

Adobe Illustrator&#xff08;通常簡稱 AI&#xff09;是一款由 Adobe 公司開發的、基于矢量圖形的專業設計軟件。它與 Photoshop&#xff08;基于位圖/像素&#xff09;和 InDesign&#xff08;專注于頁面排版&#xff09;并稱為數字創意領域的“三巨頭”&#xff0c;是平面設…

小迪web自用筆記27

框架就是一些封裝好的東西*上節課補&#xff1a;JS負責美化框架的&#xff08;發送HTTP請求前端&#xff0c;js相當于前端并且附加上一些連接后端的功能。&#xff09;&#xff0c;JAVA是后端。PHPthink&#xff08;用的最多的框架&#xff09;URL&#xff1a;原&#xff1a;ht…

創建阿里云ECS實例操作(免費試用版)

目錄 1、進入阿里云ECS控制臺 2、創建ECS實例 3、重置實例密碼 4、遠程登陸實例 5、查看ECS信息 6、安裝apache服務 7、端口規則設置 8、訪問測試 9、釋放實例 1、進入阿里云ECS控制臺 https://www.aliyun.com/ 2、創建ECS實例 3、重置實例密碼 4、遠程登陸實例 5、查…

JVM相關 4|JVM調優與常見參數(如 -Xms、-Xmx、-XX:+PrintGCDetails) 的必會知識點匯總

目錄&#xff1a;&#x1f9e0; 一、JVM調優目標1. 調優核心目標2. 調優常見問題&#x1f9e9; 二、JVM調優核心參數詳解1. 堆內存相關參數2. 垃圾回收器相關參數3. GC日志與性能監控4. 元空間&#xff08;Metaspace&#xff09;調優5. 棧內存調優6. 其他關鍵參數&#x1f4cc;…

HOT100--Day13--104. 二叉樹的最大深度,226. 翻轉二叉樹,101. 對稱二叉樹

HOT100–Day13–104. 二叉樹的最大深度&#xff0c;226. 翻轉二叉樹&#xff0c;101. 對稱二叉樹 每日刷題系列。今天的題目是《力扣HOT100》題單。 題目類型&#xff1a;二叉樹。 關鍵&#xff1a;要深刻理解《遞歸》 104. 二叉樹的最大深度 方法&#xff1a;遞歸 思路&…

Maven 從 0 到 1:安裝、配置與依賴管理一站式指南

Maven 從 0 到 1&#xff1a;安裝、配置與依賴管理一站式指南Maven 從 0 到 1&#xff1a;安裝、配置與依賴管理一站式指南一、Maven 是什么&#xff1f;二、核心概念&#xff1a;POM三、Maven 是如何工作的&#xff1f;—— 倉庫機制四、安裝Maven五、在 IntelliJ IDEA 里配置…

k8s,v1.30.4,安裝使用docker

一.前置概念Docker 與 Kubernetes 共用同一個 containerd 進程 時&#xff0c;只要滿足以下 3 個條件&#xff0c;就不會沖突&#xff1a;檢查點要求原因cgroup-driverkubelet 與 containerd 必須同為 systemd二者不一致會導致 Pod 無法調度Unix socketkubelet 指向 /run/conta…

開源AI智能名片鏈動2+1模式S2B2C商城小程序服務提升復購率和轉介紹率的研究

摘要&#xff1a;本文聚焦于開源AI智能名片鏈動21模式S2B2C商城小程序在提升客戶復購率和轉介紹率方面的作用。服務對于促進客戶復購和轉介紹的重要性不言而喻&#xff0c;維護老客戶的成本遠低于開發新客戶&#xff0c;微商通過推出各項服務來贏得客戶忠誠。本文深入探討開源A…

[數據結構] ArrayList(順序表)與LinkedList(鏈表)

目錄 1.List 1.1 什么是List 1.2 常用的方法 1.3 List的使用 2. 線性表 3. ArrayList 類(順序表) 3.1 順序表定義 3.2 ArrayList鏈表的功能模擬實現 3.3 ArrayList簡介 3.4 ArrayList的構造方法 3.5 ArrayList的遍歷 3.5 ArrayList的具體使用實例 3.5.1 楊輝三角 …

Hive使用Tez引擎出現OOM的解決方法

環境是Hive以Tez作為引擎&#xff0c;然后使用客戶端&#xff08;比如DataGrip&#xff09;連接Hive運行SQL查詢&#xff0c;運行過程中報錯信息如下&#xff1a;java.lang.OutOfMemoryError: Java heap space…連接工具以DataGrip為例&#xff0c;解決辦法如下&#xff1a; --…

SQL面試題及詳細答案150道(81-100) --- 子查詢篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 81. 什么是子查詢?子查…

筆記:ubuntu安裝matlab

記錄一下ubuntu安裝matlab的過程 一、進入桌面 雖然系統是ubuntu server&#xff0c;但是安裝matlab最好還是有桌面。這里使用todesk等工具&#xff0c;進入桌面進行遠程安裝。 二、創建matlab賬號 由于學校已經提供了matlab的賬號&#xff0c;只需要用自己的學生郵箱進行注冊即…