• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Redis教程
    Redis安裝和使用
    Redis數據類型操作命令
    高級話題
    Jedis操作Redis

    Redis Sentinel高可用

     

     

    Sentinel 哨兵是 redis 官方提供的高可用方案,可以用它來監控多個 Redis 服務實例的運行情況。Redis Sentinel 是一個運行在特殊模式下的 Redis 服務器。Redis Sentinel 是在多個Sentinel 進程環境下互相協作工作的。

     

     

    Sentinel 系統有三個主要任務:

     

    ● 監控:Sentinel 不斷的檢查主服務和從服務器是否按照預期正常工作。

     

    ● 提醒:被監控的 Redis 出現問題時,Sentinel 會通知管理員或其他應用程序。

     

    ● 自動故障轉移:監控的主 Redis 不能正常工作,Sentinel 會開始進行故障遷移操作。將一個從服務器升級新的主服務器。 讓其他從服務器掛到新的主服務器。同時向客戶端提供新的主服務器地址。

     

     

     

    1、Sentinel 配置

     

    Sentinel 配置文件

     

    復制三份sentinel.conf文

     

     

    三個文件分別命名:

     

    ● sentinel26380.conf

     

    ● sentinel26382.conf

     

    ● sentinel26384.conf

     

    ● 執行復制命令 cp sentinel.conf xxx.conf

     

     

     

    2、三份 sentinel 配置文件修改

     

    ● 修改 port 26380、 port 26382、 port 26384

     

    ● 修改 sentinel monitor mymaster 127.0.0.1 6380 2

     

    格式:sentinel monitor <name> <masterIP> <masterPort> <Quorum 投票數>

     

    Sentinel監控主(Master)Redis, Sentinel根據Master的配置自動發現Master的Slave,Sentinel默認端口號為26379 。

     

     

    sentinel26380.conf

     

    (1) 修改 port

     

     

    (2)修改監控的 master 地址

     

     

    sentinel26382.conf 修改port 26382 , master的port 6382

     

    sentinel26384.conf 修改port 26384 , master的port 6382

     

     

    3、啟動主從(Master/Slave)Redis

     

    啟動 Reids

     

     

    查看 Master 的配置信息

     

    連接到 6382 端口

     

     

    使用 info 命令查看 Master/Slave

     

     

     

    4、啟動 Sentinel

     

    redis安裝時make編譯后就產生了redis-sentinel程序文件,可以在一個redis中運行多個sentinel進程。

     

    啟動一個運行在Sentinel模式下的Redis服務實例

     

    ./redis-sentinel sentinel 配置文件

     

    執行以下三條命令,將創建三個監視主服務器的Sentinel實例:

     

    ./redis-sentinel ../sentinel26380.conf

     

    ./redis-sentinel ../sentinel26382.conf

     

    ./redis-sentinel ../sentinel26384.conf

     

    在 XShell 開啟三個窗口分別執行:

     

     

     

     

    5、主 Redis 不能工作

     

    讓 Master 的 Redis 停止服務, 執行 shutdown

     

    先執行 info replication 確認 Master 的 Redis ,再執行 shutdown

     

     

    查看當前 Redis 的進程情況

     

     

     

    6、Sentinel 的起作用

     

    在 Master 執行 shutdown 后, 稍微等一會 Sentinel 要進行投票計算,從可用的 Slave選舉新的 Master。

     

    查看 Sentinel 日志,三個 Sentinel 窗口的日志是一樣的。

     

     

    查看新的 Master

     

     

    查看原 Slave 的變化

     

     

     

    7、新的 Redis 加入 Sentinel 系統,自動加入 Master

     

    重新啟動 6382

     

     

    查看 6384 的信息

     

     

    測試數據:在 Master 寫入數據

     

     

    在 6382 上讀取數據,不能寫入

     

     

     

    8、監控

     

    ● Sentinel 會不斷檢查 Master 和 Slave 是否正常

     

    ● 如果 Sentinel 掛了,就無法監控,所以需要多個哨兵,組成 Sentinel 網絡,一個健康的Sentinel 至少有 3 個 Sentinel 應用。 彼此在獨立的物理機器或虛擬機。

     

    ● 監控同一個 Master 的 Sentinel 會自動連接,組成一個分布式的 Sentinel 網絡,互相通信并交換彼此關于被監控服務器的信息

     

    ● 當一個 Sentinel 認為被監控的服務器已經下線時,它會向網絡中的其它 Sentinel 進行確認,判斷該服務器是否真的已經下線

     

    ● 如果下線的服務器為主服務器,那么 Sentinel 網絡將對下線主服務器進行自動故障轉移, 通過將下線主服務器的某個從服務器提升為新的主服務器,并讓其從服務器轉移到新的主服務器下,以此來讓系統重新回到正常狀態

     

    ● 下線的舊主服務器重新上線,Sentinel 會讓它成為從,掛到新的主服務器下

     

     

    9、總結

     

    主從復制,解決了讀請求的分擔,從節點下線,會使得讀請求能力有所下降,Master 下線,寫請求無法執行

     

    Sentinel 會在 Master 下線后自動執行故障轉移操作,提升一臺 Slave 為 Master,并讓其它Slave 成為新 Master 的 Slave。

     

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏