Redis Cluster 與 Sentinel 筆記

目錄

  1. Redis 集群(Cluster)概述

  2. Cluster 的工作原理

  3. Cluster 配置與部署

  4. Cluster 常見問題與限制

  5. Redis Sentinel(哨兵)機制概述

  6. Sentinel 的工作機制

  7. Sentinel 配置與部署

  8. Sentinel vs Cluster

  9. 總結


Redis 集群(Cluster)概述

Redis Cluster 是 Redis 提供的一種 分布式部署方案,用來在多個 Redis 實例之間分散數據,實現 高可用性橫向擴展能力

核心特性

  • 數據自動分片(Sharding)
  • 無中心架構,所有節點互為平等
  • 內置故障轉移機制
  • 支持主從復制

Cluster 的工作原理

節點結構

  • 主節點(Master):負責處理讀寫請求并保存部分數據槽。
  • 從節點(Slave):復制主節點數據,用于故障轉移。
  • 一個集群至少需要 3 個主節點,推薦每個主節點配備一個從節點,即至少 6 個節點

分片機制(Slot)

  • Redis 集群總共定義了 16384 個槽(slots)
  • 每個主節點負責一部分 slot(例如 0-5460,5461-10922,10923-16383)。
  • 客戶端根據 CRC16(key) mod 16384 計算鍵屬于哪個 slot,自動路由到正確節點。

讀寫流程

  1. 客戶端發送請求 → Redis 客戶端庫計算 slot → 發送到對應主節點。
  2. 如果請求發錯了節點,返回 MOVEDASK 重定向。
  3. 從節點可以設置為 只讀(readonly) 以分擔主節點壓力。

故障轉移

  • 集群內部通過 Gossip 協議 相互探測。
  • 多個節點確認主節點不可用時,觸發 failover。
  • 從節點被提升為主節點,重新分配 slots。

Cluster 配置與部署

示例配置(redis.conf)

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

創建集群命令

redis-cli --cluster create \127.0.0.1:7000 127.0.0.1:7001 \127.0.0.1:7002 127.0.0.1:7003 \127.0.0.1:7004 127.0.0.1:7005 \--cluster-replicas 1

Cluster 常見問題與限制

限制描述
不支持多 key 跨 slot 操作除非 key 屬于相同 hash tag(例如 {user:1}.name
不支持事務(multi/exec)跨節點事務不被支持
部署復雜度較高運維和擴容需注意數據重分布

Redis Sentinel(哨兵機制)概述

Sentinel 是 Redis 的高可用解決方案,主要用于主從結構下的自動故障轉移和系統監控。

Sentinel 提供以下功能:

  • 自動故障檢測
  • 主從切換(Failover)
  • 通知機制(通過 API)
  • 動態配置更新

Sentinel 的工作機制

節點發現

  • 哨兵節點通過配置文件中指定的主節點地址,自動發現主從關系。
  • 多個 Sentinel 節點之間通過協議通信,形成分布式監控網絡。

故障檢測

  • 每個 Sentinel 定期向主從節點發送 PING

  • 判斷標準:

    • 主觀下線(sdown):單個 Sentinel 判斷主節點不可達。
    • 客觀下線(odown):多個 Sentinel 達成一致后認定故障。

主從切換(Failover)

  • 在主節點故障并確認 odown 后,進行如下步驟:

    1. 選擇一個從節點為新的主節點。
    2. 其他從節點重新指向新的主節點。
    3. 通知所有客戶端更新配置。

通知機制

  • Sentinel 支持發布訂閱機制,可以通知外部系統故障或切換事件。
  • 也可以通過 Sentinel API 查詢當前狀態。

Sentinel 配置與部署

sentinel.conf 示例

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

啟動 Sentinel

redis-sentinel sentinel.conf

CLI 命令示例

redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

Sentinel vs Cluster

特性SentinelCluster
數據分片? 不支持? 支持
主從架構? 支持? 支持
高可用? 自動故障轉移? 自動故障轉移
部署復雜度? 簡單?? 較復雜
跨節點事務? 支持? 不支持
場景推薦小型部署,高可用大規模數據分布式

總結

項目ClusterSentinel
高可用??
自動切換??
分布式擴展??
實現機制分片 + 主從主從 + 哨兵
使用復雜度
客戶端兼容性特殊支持(支持 cluster 的客戶端)普通客戶端即可

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

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

相關文章

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題

LLM視覺領域存在模型視覺識別不準確、細粒度視覺任務能力不足等科學問題 除了前面提到的數據集,還有一些用于評估視覺推理等能力的經典數據集。目前關于LLM視覺領域經典提示詞方面的名校或大公司論文較少,以下是相關科學問題、數據集及部分相關論文介紹: 科學問題 視覺推理…

Node.js worker_threads:并發 vs 并行

一、核心結論 Node.js 的 worker_threads 模塊實現的是 并行計算 ,而非傳統意義上的“并發”。其通過操作系統級線程實現多核 CPU 的并行執行,同時保留 Node.js 單線程事件循環的并發模型。 二、關鍵概念解析 1. 并發(Concurrency&#xff09…

gloo 多卡訓練

我們遇到了分布式訓練中的通信超時問題(Connection closed by peer)。根據錯誤信息,問題發生在梯度同步的屏障(barrier)操作時。以下是針對此問題的優化措施和代碼修改: 優化措施: 增強通信穩…

【Docker】在銀河麒麟ARM環境下離線安裝docker

1、前言 采用離線安裝的方式。 關于離線安裝的方式官網有介紹,但是說的很簡單,網址:Binaries | Docker Docs 官網介紹的有幾種主流linux系統的安裝方式,但是沒有kylin的,所以在此記錄一下。 在安裝過程中也遇到了些…

AUTOSAR進階圖解==>AUTOSAR_SWS_SOMEIPTransformer

AUTOSAR SOME/IP 轉換器規范詳解 基于AUTOSAR標準的SOME/IP轉換器協議解析與實現指南目錄 1. 介紹與功能概述2. SOME/IP架構 2.1 SOME/IP轉換器架構2.2 組件解釋2.3 層級說明 3. SOME/IP通信流程 3.1 客戶端/服務器通信序列3.2 通信流程解釋 4. SOME/IP消息結構 4.1 消息結構類…

Python 機器學習核心入門與實戰進階 Day 5 - 模型調參與交叉驗證技巧(GridSearchCV、KFold)

? 今日目標 理解模型調參的重要性(避免欠擬合/過擬合)掌握 GridSearchCV 的使用方法學習 K 折交叉驗證的基本流程與意義對比不同參數組合的表現使用 Pipeline 簡化流程(進階)📘 一、調參思路方法描述Grid Search窮舉所…

Python打卡:Day47

復習日 浙大疏錦行

ACE-Step:AI音樂生成基礎模型

ACE-Step是什么 ACE-Step 是 ACE Studio 和 StepFun 聯合推出的一款開源音樂生成基礎模型,專為高效、連貫、可控的音樂創作而設計。它融合了擴散模型、深度壓縮自編碼器(DCAE)和輕量級線性變換器,生成速度比傳統大模型快約 15 倍…

Web前端: :is(通用選擇器)

:is(通用選擇器)CSS中的 :is() 選擇器是?個功能強?的偽類選擇器,它?于簡化復雜的選擇器,特別是在處理多個相似的選擇器時。:is() 選擇器接受 ?個選擇器列表作為參數,然后匹配列表中任何?個選擇器所選中的元素。:is() 選擇器核心概念基本…

【學習筆記】網絡設備(華為交換機)基礎知識 24 —— 以太網子接口基礎知識

**總結:分享華為交換機以太網子接口基礎知識:包含子接口的簡介、功能、分類以及二層以太網子接口配置終結子接口、三層以太網子接口配置終結子接口和檢查配置結果的相關命令 ** 一、子接口的概念 1、子接口的簡介以太網子接口:?是通過協議和…

在Docker中安裝nexus3(作為maven私服)

1. 為什么我不推薦安裝nexus2? 有兩個原因:(1)nexus2安裝麻煩,nexus3安裝更方便 (2)Nexus 3相對于Nexus 2進行了一些重要的改進和增強。它引入了新的存儲引擎、更多的倉庫類型支持、改進的權限…

一、MySQL 8.0 之《EXPLAIN ANALYZE 執行計劃》

文章目錄一、MySQL EXPLAIN ANALYZE 執行計劃指南主要功能實際執行性能分析詳細的執行統計性能瓶頸識別與普通 EXPLAIN 的區別使用場景查詢優化問題診斷總結二、EXPLAIN ANALYZE 執行計劃樣例分析執行順序解讀逐行詳細解釋第 7 行 (最內層)第 6 行第 5 行第 4 行第 3 行第 2 行…

Google I/O Extended :2025 Flutter 的現狀與未來

大家好,我是 Flutter GDE 郭樹煜,Github GSY 項目的維護人,今天主要分享的內容是「Flutter 的現狀與未來」,可能今天更多會是信息科普類型的內容,主要是分享關于 Flutter 的現狀與未來 現狀 其實 Flutter 從開源到現在…

軟考(軟件設計師)數據庫原理:事務管理,備份恢復,并發控制

數據庫事務管理與備份恢復 事務(Transaction) 是數據庫管理系統中執行的一個不可分割的工作單元,它包含一組 SQL 操作,這些操作要么全部成功執行,要么全部不執行。 事務的四大特性(ACID)&…

【牛客刷題】相遇

文章目錄 一、題目介紹1.1 題目描述1.2 輸入描述1.3 輸出描述1.4 示例二、解題思路2.1 核心算法設計2.2 性能優化關鍵2.3 算法流程圖三、解法實現3.1 解法一:基礎實現3.1.1 初級版本分析3.2 解法二:優化版本(推薦)3.2.1 優化版本分析一、題目介紹 1.1 題目描述 街道可以看…

uni-app 下拉搜索多選 支持自己創建數據

組件 /components/selectmul.vue <template><view class="multi-select-container"><view class="input-dropdown-container"><view class="" v-if="selectlist&&selectlist[0]"><text class=&qu…

nmon使用方法

安裝方法 方法1&#xff1a; 最簡單方法&#xff1a; #dnf install nom 驗證 執行命令&#xff1a; #nmon 方法2&#xff1a; 下載安裝包安裝&#xff0c;下載地址 官網&#xff1a;nmon and njmon | Site / Download 或者&#xff1a;https://sourceforge.net/project…

Google AI 剛剛開源 MCP 數據庫工具箱,讓 AI 代理安全高效地查詢數據庫

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

數學建模的一般步驟

歸納編程學習的感悟&#xff0c; 記錄奮斗路上的點滴&#xff0c; 希望能幫到一樣刻苦的你&#xff01; 如有不足歡迎指正&#xff01; 共同學習交流&#xff01; &#x1f30e;歡迎各位→點贊 &#x1f44d; 收藏? 留言?&#x1f4dd; 青春由磨礪而出彩&#xff0c;人生因奮…

【web安全】SQLMap 參數深度解析:--risk 與 --level 詳解

目錄 簡介 一、--risk 參數&#xff1a;測試風險控制 1. 基本定義 2. 各級別詳細對比 risk1 (默認) risk2 risk3 3. 使用建議 二、--level 參數&#xff1a;測試深度控制 1. 基本定義 2. 各級別詳細對比 level1 (默認) level2 level3 level4 level5 3. 技術實…