網站首頁 編程語言 正文
哨兵模式是redis高可用的一種解決方案。
哨兵必須用三個實例取保證自己的高可用,但是哨兵+主從模式是不能保證消息不丟失的。
為什么用三個來保證呢?
假設現在有兩個服務器,第一臺有redis主節點M1,和哨兵S1,第二臺有redis從節點S2,哨兵S2。
如果M1宕機,S1和S2中只要有1個哨兵認為master宕機就可以還行切換,此時哨兵大多數(我理解的大多數的過半)還在運行,那么S1,S2能通過選舉,拿出來一個哨兵進行故障轉移。
如果第一個服務器整個宕機,M1,S1都已經死掉了,此時S2發現M1宕機,但是哨兵只有一個了,不滿足大多數的機器存活,無法選舉,就沒有辦法來執行故障轉移。雖然另外一臺機器還有一個R1,但是故障轉移不會執行。
經典的是三節點的哨兵集群
如果M1所在機器宕機了,那么三個哨兵還剩下2個,S2和S3可以一致認為master宕機,然后選舉出一個來執行故障轉移。
同時3個哨兵的大多數是2,所以還剩下的2個哨兵運行著,就可以允許執行故障轉移。
接下來談一談怎么做哨兵
首先我們需要搭建個一主兩從的redis,單個節點的redis安裝鏈接如下
redis安裝包下載地址Redis
我們可以將單個redis安裝三次(6381為主機,6380,6379為從機),然后修改配置文件
1.配置redis.conf文件中的端口號分別為6379,6380,6381,
2.daemonize均為yes
3.6380和6379?均添加slaveof 127.0.0.1 6379? (我是在一臺服務器上安裝的,若不是一臺服務器,ip換為redis主機ip)
?分別使用./src/redis-server ./myredis/redis.conf 命令啟動redis。
啟動后使用./src/redis-cli -p 6379 -h 127.0.0.1 連接redis的客戶端? (ip和端口換成自己的)
再執行info Replication,即可看到主從狀態?
三臺狀態如下
?
主從就搭建好了。
接下來配置哨兵
將剛剛的文件redis-6379 復制三份,分別重命名為sentinel-26379,sentinel-26380,sentinel-26381
然后分別修改三個文件的配置文件sentinel.conf?
#端口號 (換成相應sentinel的端口號)
port 26379
#守護進程,后臺啟動
daemonize yes
#監測redis集群的主機
sentinel monitor mymaster 127.0.0.1 6381 1
?修改完畢之后使用./src/sentinel-server ./sentinel.conf啟動,成功后,
使用./src/resic-cli -p 26379 命令連接sentinel(其他兩個也可以使用這個連接),成功后,使用info命令,可以看到監聽的redis集群狀態
原文鏈接:https://blog.csdn.net/wangyunzhao007/article/details/122298571
相關推薦
- 2022-07-19 Tomcat升級版本出現400問題
- 2022-12-04 Jetpack?Compose慣性衰減動畫AnimateDecay詳解_Android
- 2022-08-02 linux?shell文件轉碼iconv命令的使用_linux shell
- 2022-06-27 Abp集成HangFire開源.NET任務調度框架_實用技巧
- 2022-10-26 Python中打包和解包(*和**)的使用詳解_python
- 2024-02-29 UNI-APP獲取當前位置,出現getLocation:fail [geolocation:7]錯誤
- 2022-07-12 Android廣播和消息跨進程通信并返回數據
- 2022-12-24 Golang實現組合模式和裝飾模式實例詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支