redis-sentinel基礎概念及部署

一. 引言:

?Redis Sentinel 是 redis 官方提供的高可用解決方案,主要用于監控 Redis 主從集群,在主節點故障時自動完成故障轉移,確保服務持續可用。

二. 核心功能

  1. 1. 監控(monitoring):持續檢查主節點(master)和從節點(slave)是否正常運行。

  2. 2. 自動故障轉移(automatic failover):當主節點故障時,自動將一個從節點晉升為新主節點,并讓其他從節點指向新主節點。

  3. 3. 通知(notification):通過 API 向管理員或其他應用程序發送故障通知。

  4. 4. 配置提供者(configuration provider):客戶端可通過 Sentinel 獲取當前主節點地址(無需硬編碼)。

三.?核心組件

? ? ? ? 1. sentinel 節點:特殊的 Redis 進程(非數據存儲節點),通常部署 3 個及以上以保證自身高可用。

? ? ? ? 2. 主節點(master):負責處理寫操作的 redis 節點。

????????3. 從節點(slave):同步主節點數據,提供讀服務,主節點故障時可被晉升。

四. 故障轉移流程

  1. 1. 多個 sentinel 檢測到主節點故障。

  2. 2. 選舉一個 sentinel 作為領導者,負責執行故障轉移。

  3. 3. 從合格的從節點中選擇一個晉升為新主節點。

  4. 4. 其他從節點切換到新主節點同步數據。

  5. 5. 原主節點恢復后,作為從節點加入新主節點。

五. 服務部署:?


#安裝依賴
yum install make gcc#下載安裝
wget https://download.redis.io/releases/redis-7.4.3.tar.gz
tar fxvz redis-7.4.3.tar.gz
cd redis-7.4.3
make
make install
mkdir /etc/redis-server
mkdir /etc/redis-sentinelmkdir -p /opt/redis-logcp redis-7.4.3/redis.conf /etc/redis-server/redis.conf

配置文件:?

################################## NETWORK #####################################
bind 127.0.0.1 10.0.43.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300################################# GENERAL #####################################
daemonize yes
pidfile "/var/run/redis.pid"
loglevel notice
logfile "/data/redis-log/redis.log"
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
locale-collate ""################################ SNAPSHOTTING  ################################
save 3600 1
save 300 100
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
rdb-del-sync-files no
dir "/data/redis-data"################################# REPLICATION #################################
masterauth "rCzxxxxsN5"
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 5
repl-diskless-sync-max-replicas 0
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100################################## SECURITY ###################################
acllog-max-len 128
requirepass "rCzxxxxsN5"################################### CLIENTS ####################################
maxclients 10000############################## MEMORY MANAGEMENT ################################maxmemory 5gb
maxmemory-policy volatile-lru
maxmemory-samples 5
maxmemory-eviction-tenacity 10
replica-ignore-maxmemory yes
active-expire-effort 1############################# LAZY FREEING ####################################
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no################################ THREADED I/O #################################
io-threads 1
io-threads-do-reads no
############################ KERNEL OOM CONTROL ##############################
oom-score-adj no
oom-score-adj-values 0 200 800#################### KERNEL transparent hugepage CONTROL ######################
disable-thp yes############################## APPEND ONLY MODE ###############################
appendonly yes
appendfilename "appendonly.aof"
appenddirname "appendonlydir"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
aof-timestamp-enabled no################################ SHUTDOWN #####################################
shutdown-timeout 10
shutdown-on-sigint default
shutdown-on-sigterm default################################## SLOW LOG ###################################
slowlog-log-slower-than 10000
slowlog-max-len 128################################ LATENCY MONITOR ##############################
latency-monitor-threshold 0################################ LATENCY TRACKING ##############################
latency-tracking-info-percentiles 50 99 99.9############################# EVENT NOTIFICATION ##############################
notify-keyspace-events ""hz 10dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes########################### ACTIVE DEFRAGMENTATION #######################
activedefrag no
active-defrag-ignore-bytes 100mb
active-defrag-threshold-lower 10
active-defrag-threshold-upper 100
active-defrag-cycle-min 1
active-defrag-cycle-max 25
active-defrag-max-scan-fields 1000jemalloc-bg-thread yes#如果是從節點,新增replicaof ${masterip} 6379

啟動服務:

redis-server redis.conf

可通過以下指令,查看主從信息:

redis-cli -h ${masterip} -p 6379 -a ${password} info replication

六. sentinel部署配置:

cp /opt/redis-7.4.3/sentinel.conf /etc/redis-sentinel/sentinel.confcd /etc/redis-sentinel/#vim sentinel-26379.confprotected-mode no
port 26379
daemonize yes
pidfile "/var/run/redis-sentinel.pid"
loglevel notice
logfile "/opt/redis-log/redis-sentinel.log"
dir "/opt/redis-sentinel"sentinel monitor mymaster 10.0.43.1 6379 2sentinel auth-pass mymaster rCzxxxxsN5  #master 密碼sentinel down-after-milliseconds mymaster 30000 
acllog-max-len 128sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yessentinel resolve-hostnames nosentinel announce-hostnames no#其他節點,參考以上配置。

啟動服務:

redis-sentinel sentinel.conf

查看sentinel的狀態:

redis-cli -h 172.88.19.102 -p 26379 info Sentinel

七. 驗證:

? ? 驗證自動切換主從: ??

? ? kill 掉master: 6379?

?

?發現master發生變化,即成功。 延遲生效時間,取決于:?sentinel down-after-milliseconds mymaster 30000 。

?-------------------------------------------------------------------------------------------

? ? ? ? ? ? ? ? ? ? ? ? ?深耕運維行業多年,擅長運維體系建設,方案落地。歡迎交流!

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? V: ywjw996

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?? 《 運維經緯 》

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

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

相關文章

LangChain RAG 簡述

在 LangChain 中實現 RAG(檢索增強生成,Retrieval-Augmented Generation)的核心思路是:讓大模型在生成回答前,先從外部知識庫(如文檔、數據庫等)中檢索相關信息,再基于檢索到的內容生…

GEO 優化專家孟慶濤:技術破壁者重構 AI 時代搜索邏輯

在生成式 AI 重塑全球搜索生態的浪潮中,中國 GEO(生成式引擎優化)領域的開拓者孟慶濤以 "智能決策革命" 的技術框架,顛覆了傳統 "發發文章" 的簡單認知。作為遼寧粵穗網絡科技有限公司總經理兼 GEO 實驗室主任…

用relation-graph構建關系圖譜 vue版

用relation-graph構建關系圖譜 vue版vue文件和Json數據vue文件和Json數據 <template><div><div style"margin-top:0px;width: calc(100% - 10px);height:calc(100vh);"><RelationGraph ref"graphRef" :options"graphOptions&qu…

Python基礎-控制結構

控制結構是編程語言中用來控制程序執行流程的語句。Python提供了條件語句、循環語句等控制結構&#xff0c;讓程序能夠根據不同條件執行不同的代碼塊。 程序執行流程圖&#xff1a; ┌───────────────────────────────────────────…

Java算法之排序

下面我們將講述七大基于比較的排序算法的基本原理及實現。并從穩定性、時間復雜度、空間復雜度3種性能對每種排序進行分析。 重點&#xff1a;快速排序和堆排序&#xff1b;難點&#xff1a;快速排序和歸并排序 目錄 一、排序概念 二、常見排序算法的實現 2.1 插入排序 2.…

RabbitMQ:SpringAMQP 多消費者綁定同一隊列

目錄一、案例需求二、代碼實現三、總結生產者源碼 消費者源碼 一、案例需求 模擬WorkQueue&#xff0c;實現一個隊列綁定多個消費者。 在RabbitMQ的控制臺創建一個隊列&#xff0c;命名為work.queue。在生產者服務中定義測試方法&#xff0c;在1s內產生50條消息&#xff0c;…

Java技術總監的成長之路(技術干貨分享)

以下是針對 ?Java技術總監? 在 Linux 環境下搭建企業級開發環境的完整指南&#xff0c;涵蓋 JDK 配置、工程工具鏈、協作平臺及性能優化方案&#xff1a; 本文章僅提供學習&#xff0c;切勿將其用于不法手段&#xff01; 一、核心環境搭建 1. ?JDK 安裝與調優? ?版本選擇…

C++代碼解釋:實現一個 mystring 類,用于表示字符串,實現構造函數,默認構造長度為 10 的空間,提供打印字符串,獲取空間大小,修改內容的成員函數

題目代碼#include <cstring> // 包含字符串處理函數庫&#xff0c;如strlen、strncpy等 #include <iostream> // 包含輸入輸出流庫&#xff0c;用于cout等操作 using namespace std; // 使用標準命名空間&#xff0c;避免重復書寫std::class mystring { // 定…

如何解決IDEA/Datagrip無法連接數據庫的問題:解決方法為添加參數-Djava.net.preferIPv4Stack=true

如何解決IDEA/Datagrip無法連接數據庫的問題&#xff1a;解決方法為添加參數-Djava.net.preferIPv4Stacktrue 引言 在開發過程中&#xff0c;我們常常使用集成開發環境&#xff08;IDE&#xff09;如 IntelliJ IDEA 或 JetBrains DataGrip 來與數據庫進行交互。然而&#xff…

走進數字時代,融入數字生活,構建數字生態

一、準備在IT行業深耕十七年&#xff0c;始終專注于企業生產經營中的實際應用問題&#xff0c;歷經開發、測試、運維、實施、架構設計等多個技術崗位&#xff0c;并參與肉制品的生產與銷售業務&#xff0c;推進了企業主業的市場管理落地&#xff0c;積累了業務與信息技術融合的…

【Vue開發】在Vite+Vue3項目中實現離線Iconify圖標方案

在ViteVue3項目中實現離線Iconify圖標方案 項目背景 當前項目需要部署到無網絡連接的離線環境&#xff0c;因此需要將Iconify圖標集打包到項目構建結果中&#xff0c;實現完全離線使用。 技術環境 框架: Vue 3構建工具: Vite核心依賴:"iconify/json": "^2.2…

Kotlin 協程之Channel

前言 在之前的文章中&#xff0c;我們已經知道了協程的啟動、掛起、取消、異常以及常用的協程作用域等基礎應用。 這些基礎應用適合的場景是一次性任務&#xff0c;執行完就結束了的場景。 launch / async 適合的場景 網絡請求數據庫查詢文件讀寫并行計算任務等等 Channel …

linux系統裝google chrome,amd64

google chrome官網最下邊其他平臺&#xff0c;linux 查看自己的系統架構&#xff08;用下邊這行代碼查看&#xff09;&#xff0c;看看是amd還是 &#xff0c;我的顯示amd64&#xff0c;amd對應.deb,rpm對應x86 &#xff0c;選擇下載 dpkg --print-architecture 然后 sudo…

【C++基礎】C++ 中const與volatile關鍵字深度解析:從面試考點到底層實現

在 C 開發崗位的面試中&#xff0c;const與volatile關鍵字是高頻考點之一。這兩個關鍵字看似簡單&#xff0c;但實際上蘊含著豐富的語義和底層機制。本文從基礎語法到高級應用&#xff0c;結合大廠真題&#xff0c;深入解析這兩個關鍵字的奧秘。一、const關鍵字&#xff1a;常量…

達夢分布式集群DPC_故障分析_yxy

達夢分布式集群DPC_節點故障分析1 DPC核心概念回顧2 場景1-主庫故障3 場景2-少數備庫故障4 場景3-多數節點故障4.1 多數節點故障&#xff08;包括主庫&#xff09;4.2 多數備庫節點故障&#xff08;不包括主庫&#xff09;1 DPC核心概念回顧 達夢分布式集群DPC&#xff0c;基于…

【高并發內存池】一、簡介 定長內存池實現

文章目錄Ⅰ. 項目介紹1、這個項目要做什么2、項目的要求Ⅱ. 什么是內存池1、池化技術2、內存池3、mallocⅢ. 設計一個定長內存池1、定長內存池的概念2、實現如何實現定長???如何繞開 malloc 向堆直接申請空間???3、性能測試Ⅰ. 項目介紹 1、這個項目要做什么 tcmalloc源…

產品設計.原型設計

產品思維&#xff1a; 1. 產品定位&#xff1a;產品的具體的、用戶畫像&#xff1b; --什么樣的人在什么環境下做什么事情的場景 2. 范圍層: 發現、識別和決策需求。--識別真假需求&#xff0c;做ROI判斷 3. 可復用的、MVP產品方案--要能復用的解決方案&#xff0c;最小可用產品…

vue3+element-plus 輸入框el-input設置背景顏色和字體顏色,樣式效果等同于不可編輯的效果

應用效果&#xff1a;代碼&#xff1a;<template> ......<el-form-item label"文件編號" label-position"right"><el-input v-model"qualityFileForm.fileNo" clearable :disabled"!props.isNew" /></el-form-it…

[ CSS 前端 ] 網頁內容的修飾

目錄 一. CSS 1. 概述 2. 基本語法 (1)行內樣式表 (2)內嵌樣式表 (3)外部樣式表 3. 選擇器 (1)標簽選擇器: (2)類選擇器: (3)通配選擇器: (4)后代選擇器: 4. 基礎樣式 (1). 文本樣式 (2). 背景樣式 (3). 列表樣式 5. 偽類 (1)定義: (2)偽類的語法&#xff1a; …

全面深入了解榛樹游戲引擎

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;榛樹游戲引擎&#xff08;Hazel&#xff09;是一款專為游戲開發設計的先進軟件工具&#xff0c;它集成了多種功能&#xff0c;支持現代圖形API&#xff0c;具有高性能的物理模擬系統和易學易用的腳本語言&#…