日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis集群-哨兵模式

發布時間:2024/9/20 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis集群-哨兵模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/liuzhixiong_521/article/details/84797609

文章目錄

??????? 概述
??????? 優勢
??????? 哨兵集群
??????? 啟動方式
??????? 哨兵配置解析
??????? 主備切換策略
??????????? 如何判斷節點不可用
??????????? 主觀下線
??????????? 客觀下線
??????????? 切換條件

概述

哨兵模式是Redis官方推薦的集群部署方式,與主從復制方式不同,哨兵模式可以在Master宕機時,自動實現主備切換。哨兵本身也是一個獨立運行的進程,它用來監控多個主從復制集群。下圖為哨兵模式簡易調用圖:
在這里插入圖片描述
優勢

??? 不定時監控Redis集群是否運行良好。
??? 若Redis節點出現故障,可以及時同事其他進程,如客戶端。
??? 能夠自動進程主備切換。

哨兵集群

很顯然,哨兵進程也存在單點部署的問題,即哨兵進程掛掉后,導致整個集群不可用,故哨兵進程也應該支持集群部署。部署哨兵集群的優勢有以下幾點:

??? 即便某些哨兵進程掛掉,依然可以進行主備切換。
??? 客戶端可以連接任意一個哨兵進程服務,以獲取集群信息。

啟動方式

??? 第一種
??? redis-sentinel sentinel.conf
??? 第二種
??? redis-server sentinel.conf --sentinel
??? 兩種啟動方式均需要指定哨兵配置文件,哨兵進程默認監聽端口為26379。

哨兵配置解析

sentinel monitor mymaster 127.0.0.1 6379 2

??? 1

表示監控的master節點名稱為mymaster,ip為127.0.0.1,端口為6379,2的含義為大于等于2個哨兵進程認為master不可用時,才會真正認為master不可用,這個我們后續會詳細敘述。

sentinel down-after-milliseconds mymaster 3000

??? 1

哨兵通過PING來確認master是否存活,上述配置表示單個哨兵在3000毫秒內未收到PING的有效回復,則認為master已經不可用。

sentinel parallel-syncs mymaster 2

??? 1

上述配置表示為,主備切換時可以最多有2個slave與master進行同步,這個數字越小,完成同步時間越長,數字越大,完成同步時間短,但是意味著更多slave處于不可用狀態,所以應合理配置這個數值。
主備切換策略
如何判斷節點不可用

哨兵向redis節點發送PING命令,若時間超過down-after-milliseconds未收到有效回復,則認為該節點不可用。
主觀下線

簡稱SDOWN,指的是某個哨兵判斷為節點不可用時(檢測頻率為1秒),將該節點標注為主觀下線,節點范圍適用于Master和Slave。
客觀下線

簡稱ODOWN,指的是一定數量(通過配置指定)的哨兵判斷為節點不可用時,將該節點標注為客觀下線,節點范圍只適用于Master。

若沒有足夠數量的哨兵同意Master已經下線,Master 的客觀下線狀態就會被移除。
若Master重新對哨兵的PING命令返回有效回復,Master的主觀下線狀態就會被解除。
切換條件

當master被標記為客觀下線后,若哨兵群中大多數(majority)哨兵都認為master已經不可用,通過投票從剩余的slave選舉一個作為新的master并修改相關配置。

上面說的“大多數哨兵”具體指的是多少哨兵呢,請看下面的對應關系。

2 個哨兵,majority=2
3 個哨兵,majority=2
4 個哨兵,majority=2
5 個哨兵,majority=3

??? 1
??? 2
??? 3
??? 4

那么如何從slave選舉出一個作為master呢?請看如下參考條件:

??? slave節點處于SDOWN,ODOWN,DISCONNECTED不會作為備選master節點。
??? 最近一次ping應答時間超過5倍ping的間隔不會作為備選master節點。
??? slave 跟 master 斷開連接的時間已經超過了down-after-milliseconds的 10 倍+master 宕機的時長,不會作為備選master節點。

如果通過了上面的篩選,則按如下流程篩選master節點:

??? 按照優先級排序,優先級數值(配置文件設置)越低,則備選master的優先級越高。
??? 如果優先級相同,則取replica offset較大的slave作為master備選節點。
??? 如果replica offset也相同,則選取run id較小的作為master備選節點。(每個redis實例,都會有一個runid,通常是一個40位的隨機字符串,在redis啟動時生成)

作者Redis系列文章大全

Redis入門
CentOS-7下安裝redis-2.8
Redis配置詳解
Redis數據淘汰策略
Redis緩存一致性問題
Redis穿透與雪崩的預防與解決方案
阻塞IO、非阻塞IO和異步IO
Redis事物探秘
Redis持久化淺析
IO多路復用及select、poll和epoll
Redis集群-主從復制模式
Redis集群-哨兵模式
---------------------
作者:LovelyBear2018
來源:CSDN
原文:https://blog.csdn.net/liuzhixiong_521/article/details/84797609
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

總結

以上是生活随笔為你收集整理的Redis集群-哨兵模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。