使用docker在3臺服務器上搭建基于redis 6.x的一主兩從三臺均是哨兵模式

?一、環境及版本說明

如果服務器已經安裝了docker,則忽略此步驟,如果沒有安裝,則可以按照一下方式安裝:

? ? ? ? 1. 在線安裝(有互聯網環境):?請看我這篇文章 傳送陣>>?點我查看

? ? ? ? 2. 離線安裝(內網環境):請看我這篇文章 傳送陣>>?點我查看

說明:假設每臺服務器已經安裝好了Docker軟件,并且redis集群的安裝目錄在/home/redis下面

環境及版本
操作系統IP操作系統版本docker版本redis版本
Linux192.168.100.101CentOS7.6(1810)18.09.96.0.8
Linux192.168.100.102CentOS7.6(1810)18.09.96.0.8
Linux192.168.100.103CentOS7.6(1810)18.09.96.0.8

二、哨兵模式的優缺點

優點?:

  1. ?自動故障轉移?:主節點故障時自動選舉新主節點
  2. ?高可用性?:服務連續性保障更強
  3. ?監控告警?:實時監測節點狀態并通知

?缺點?:

  1. ?配置復雜?:需額外部署哨兵節點
  2. ?寫擴展性差?:仍存在主節點寫瓶頸
  3. ?數據分片不支持?:無法突破單節點內存限制

?適用場景?:

  • 對自動容災有要求的業務(如電商核心服務)
  • 需要7×24小時穩定運行的系統

三、基于一主兩從模式搭建三臺服務器均添加哨兵

說明:哨兵模式實際上是redis主從模式的高可用的實現,因此,必須先搭建主從架構(至少1主1從),哨兵才能監控主從節點狀態并執行故障轉移。哨兵節點本身不存儲數據,僅負責監控和協調。

重要:如果當前你還沒有搭建redis的1主2從模式,那么請先看我的這篇文章:

使用docker在3臺服務器上搭建基于版本redis 6.x的一主兩從模式?https://blog.csdn.net/langmeng110/article/details/148521426?spm=1011.2415.3001.5331

四、配置文件

?說明:三臺服務器都需要配置,路徑是:/home/redis/sentinel.conf

#sentinel.conf配置文件內容
port 26379
daemonize yes
sentinel monitor mymaster 192.168.100.101 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 180000
# 哨兵訪問主節點的密碼
sentinel auth-pass mymaster 123456
# 哨兵自身管理密碼
requirepass 123456

?五、創建啟動腳本create_redis_sentinel.sh或編輯create_redis_master.sh

#create_redis_sentinel.sh腳本內容
docker run -d --restart=always --name redis-master \
-p 6379:6379 -p 26379:26379 --privileged=true \
-v /home/redis/sentinel.conf:/sentinel.conf \
-v /home/redis/master.conf:/redis.conf \
-v /home/redis/data:/data \
redis:6.0.8 redis-server /redis.conf

其中,-v /home/redis/sentinel.conf:/sentinel.conf 是先將哨兵配置文件映射到容器內

-p 26379:26379 是哨兵模式啟動時,所需的端口。

六、啟動

1. 執行如下腳本,以啟動主節點:

#執行創建腳本
sh create_redis_sentinel.sh#然后查看容器狀態
docker ps

出現如下圖所示內容,表示啟動成功:

2. 進入主節點容器中,?并啟動哨兵命令:

#進入容器
docker exec -it redis-master /bin/bash
#啟動哨兵命令
redis-sentinel /sentinel.conf

啟動后,是沒有任何輸出的

?如果想檢驗是否啟動成功,輸入如下命令查看:

#在redis-master容器中執行如下命令
redis-cli -p 26379 -a 123456#輸入如下命令查看哨兵狀態
info sentinel

輸入命令后,將會如下圖所示:

?七、創建從節點哨兵

以102節點為例,103與102的操作是完全一樣的,這里就不在贅述

1.?創建啟動腳本create_redis_sentinel.sh或編輯create_redis_slave.sh

#create_redis_sentinel.sh腳本內容
docker run -d --restart=always --name redis-slave \
-p 6379:6379 -p 26379:26379 --privileged=true \
-v /home/redis/sentinel.conf:/sentinel.conf \
-v /home/redis/slave.conf:/redis.conf \
-v /home/redis/data:/data \
redis:6.0.8 redis-server /redis.conf

2. 執行如下腳本,以啟動102從節點:

#執行創建腳本
sh create_redis_sentinel.sh#然后查看容器狀態
docker ps

出現如下圖所示內容,表示啟動成功:

3. 進入102從節點容器中,?并啟動哨兵命令:

#進入容器
docker exec -it redis-slave /bin/bash
#啟動哨兵命令
redis-sentinel /sentinel.conf

啟動后,是沒有任何輸出的

?如果想檢驗是否啟動成功,輸入如下命令查看:

#在redis-master容器中執行如下命令
redis-cli -p 26379 -a 123456#輸入如下命令查看哨兵狀態
info sentinel

輸入命令后,將會如下圖所示:

4. 將103從節點按照上述步驟,再操作一次,即可。

八、驗證哨兵模式是否正常?

1. 關閉101主節點

2.10秒后,再次查看102從節點的狀態

如圖所示,主節點已經從101服務器,變成了102服務器。

3. 恢復101主節點的程序

?4. 重新啟動哨兵模式(這一步很重要,容器重新啟動的時候,哨兵是不會自動啟動的,需要手動啟動

5. 進入哨兵命令行

6. 查看哨兵狀態

?如上圖所示,主節點依舊是102服務器,101服務器變成了從節點。

到此,哨兵模式的搭建就完成了,喜歡的朋友點個關注再走吧~~

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

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

相關文章

阿里云ACP云計算備考筆記 (5)——彈性伸縮

目錄 第一章 概述 第二章 彈性伸縮簡介 1、彈性伸縮 2、垂直伸縮 3、優勢 4、應用場景 ① 無規律的業務量波動 ② 有規律的業務量波動 ③ 無明顯業務量波動 ④ 混合型業務 ⑤ 消息通知 ⑥ 生命周期掛鉤 ⑦ 自定義方式 ⑧ 滾的升級 5、使用限制 第三章 主要定義 …

CANopen轉Modbus TCP轉換器助生產線智能化升級

在自動化工業控制領域,CANopen和Modbus TCP是兩種廣泛采用的通信協議。它們各自具有獨特的特點和優勢,但在某些應用場景中,需要設備能夠同時支持這兩種通信標準。這就需要一個能夠實現開疆智能CANopen轉Modbus TCP轉換的網關KJ-TCPC-CANP設備…

C++圖書管理

圖書館的書籍分類系統使用二進制標簽管理,0 代表兒童讀物,1 代表青少年書籍。管理員發現當前的書架排列中不允許出現青少年書籍之后連接兒童讀物的情況(即 10 子串)。管理員每次可以交換任意兩本書的位置。請計算讓書架符合規定所…

汽車免拆診斷案例 | 2010款捷豹XFL車制動警告燈、DSC警告燈異常點亮

故障現象  一輛2010款捷豹XFL車,搭載3.0 L發動機,累計行駛里程約為35萬km。車主反映,該車組合儀表上的制動警告燈、動態穩定控制系統(DSC)警告燈異常點亮(圖1),且提示“DSC NOT AV…

el-upload組件,上傳文件失敗,:on-error方法失效

el-upload組件方法失效 問題原因解決 問題 使用el-upload組件上傳文件,有這么一個問題上傳文件處理報錯Excel、Word。org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException。 按上述,后端編寫完代碼,輸出正常,但…

可視化圖解算法50:最小的K個數

牛客網 面試筆試 TOP101 | LeetCode 面試題 17.14. 最小K個數 1. 題目 描述 給定一個長度為 n 的可能有重復值的數組,找出其中不去重的最小的 k 個數。例如數組元素是4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4(任意順序皆可)。 數…

Ragflow配置注意項

在 .env文件中啟用v.0.19.0版本,帶emabedding models RAGFLOW_IMAGEinfiniflow/ragflow:v0.19.0 RAGFlow image tagImage size (GB)Has embedding models?Stable?v0.19.0≈9??Stable releasev0.19.0-slim≈2?Stable releasenightly≈9??Unstable nightly b…

Word VBA快速制作填空題

實例需求:Word文檔用于英語單詞學習,重點記憶單詞標記下劃線,其內容如下圖所示。 現在文檔轉換為填空題(無論單詞字符多少,填空部分統一使用10個空格)和參考答案兩部分,如下圖所示。 示例代碼如…

不變性(Immutability)模式

1. 不變性(Immutability)模式 1.1. 不變性模式的概念 定義:對象一旦被創建,其內部狀態就不再發生變化,也即“只讀無寫”,不會出現并發寫的問題,自然線程安全。 適用場景:只讀共享…

探秘鴻蒙 HarmonyOS NEXT:鴻蒙定時器,簡單倒計時的場景應用

在鴻蒙 ArkTS 開發中,定時器是實現動態效果和定時任務的重要工具。基于鴻蒙 API 12 及以上版本,ArkTS 提供了功能豐富的定時器 API,本文將帶你全面了解定時器的使用方法。 一、定時器常用 API 介紹 ArkTS 中的定時器主要分為一次性定時器&a…

安卓基礎(語義樹)

進化1 package com.example.demotest.unread;import android.accessibilityservice.AccessibilityService; import android.content.res.Resources; import android.graphics.Rect; import android.util.DisplayMetrics; import android.util.Log; import android.view.access…

Linux基礎開發工具——vim工具

文章目錄 vim工具什么是vimvim的多模式和使用vim的基礎模式vim的三種基礎模式三種模式的初步了解 常用模式的詳細講解插入模式命令模式模式轉化光標的移動文本的編輯 底行模式替換模式視圖模式總結 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是繼續講解Linux系統下的…

C++_核心編程_多態案例二-制作飲品

#include <iostream> #include <string> using namespace std;/*制作飲品的大致流程為&#xff1a;煮水 - 沖泡 - 倒入杯中 - 加入輔料 利用多態技術實現本案例&#xff0c;提供抽象制作飲品基類&#xff0c;提供子類制作咖啡和茶葉*//*基類*/ class AbstractDr…

AcWing--數據結構1

用數組來模擬鏈表。這種實現鏈表的方式也叫靜態鏈表。 1.單鏈表 寫鄰接表&#xff1a;存儲圖和樹 我們定義&#xff1a;e[N]用來表示某個點的值是多少&#xff1b;ne[N]用來表示某個點的next指針是多少 e和ne是用下標關聯起來的 如&#xff1a;head->3->5->7->…

云啟出海,智聯未來|阿里云網絡「企業出海」系列客戶沙龍上海站圓滿落地

借阿里云中企出海大會的東風&#xff0c;以**「云啟出海&#xff0c;智聯未來&#xff5c;打造安全可靠的出海云網絡引擎」為主題的阿里云企業出海客戶沙龍云網絡&安全專場于5.28日下午在上海順利舉辦&#xff0c;現場吸引了來自攜程、小紅書、米哈游、嗶哩嗶哩、波克城市、…

多模態分類案例實現

以下是基于飛槳平臺實現的多模態分類詳細案例&#xff0c;結合圖像和文本信息進行分類任務。案例包含數據處理、模型構建、訓練和評估的完整流程&#xff0c;并提供詳細注釋&#xff1a; 一、多模態分類案例實現 import os import json import numpy as np from PIL import I…

Express框架:Node.js的輕量級Web應用利器

Hi,我是布蘭妮甜 !在當今快速發展的Web開發領域,Node.js已成為構建高性能、可擴展網絡應用的重要基石。而在這片肥沃的生態系統中,Express框架猶如一座經久不衰的燈塔,指引著無數開發者高效構建Web應用的方向。本文章在為讀者提供一份全面而深入的Express框架指南。無論您…

K-Means顏色變卦和漸變色

一、理論深度提升&#xff1a;補充算法細節與數學基礎 1. K-Means 算法核心公式&#xff08;增強專業性&#xff09; 在 “原理步驟” 中加入數學表達式&#xff0c;說明聚類目標&#xff1a; K-Means 的目標是最小化簇內平方和&#xff08;Within-Cluster Sum of Squares, W…

深入解析C#表達式求值:優先級、結合性與括號的魔法

—— 為什么2/6*4不等于1/12&#xff1f; &#x1f50d; 一、表達式求值順序為何重要&#xff1f; 表達式如精密儀器&#xff0c;子表達式求值順序直接決定結果。例如&#xff1a; int result 3 * 5 2;若先算乘法&#xff1a;(3*5)2 17 ?若先算加法&#xff1a;3*(52)21…

Docker 離線安裝指南

參考文章 1、確認操作系統類型及內核版本 Docker依賴于Linux內核的一些特性&#xff0c;不同版本的Docker對內核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux內核3.10及以上版本&#xff0c;Docker17.09及更高版本對應Linux內核4.9.x及更高版本。…