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

歡迎訪問 生活随笔!

生活随笔

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

数据库

【Redis】使用Redis Sentinel实现Redis HA

發(fā)布時間:2024/4/13 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Redis】使用Redis Sentinel实现Redis HA 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

閱讀目錄

  • 簡單介紹
  • 章節(jié)1:配置Sentinel.conf
  • 章節(jié)2:啟動Redis Sentinel
  • 章節(jié)3:關(guān)閉master redis,測試failover
  • 章節(jié)4:重新切換為最初的master
  • 章節(jié)5:參考鏈接

簡單介紹

使用Redis Sentinel實現(xiàn)Redis HA。閱讀此文前,先閱讀文章:《【Redis】配置redis主從復(fù)制》http://www.cnblogs.com/ssslinppp/p/5661419.html?作者:ssslinppphttp://www.cnblogs.com/ssslinppp?
配置redis主從IP和port:
master and slaveipport
master127.0.0.16379
slave1127.0.0.1
6380
slave2127.0.0.1
6381

回到頂部

一、配置Sentinel.conf

上文中已經(jīng)創(chuàng)建的主從設(shè)備,截圖如下:

如上圖所示:
  • master:6379
  • slave1:6380
  • slave2:6380

sentinel配置文件如下:
  • #sentinel monitor <master-name> <ip> <redis-port> <quorum>
  • sentinel monitor mymaster 127.0.0.1 6379 1
  • sentinel down-after-milliseconds mymaster 30000
  • sentinel failover-timeout mymaster 18000
  • sentinel parallel-syncs mymaster 1

  • 解釋說明如下:>>> sentinel monitor mymaster 127.0.0.1 6379 1
    • mymaster :為master redis的名稱;
    • ip和port指定了6379端口的Redis為master;
    • quorum:一般情況下會啟動多個redis sentinel作為分布式使用,當master掛掉之后,需要從若干個slave中推選出1個slave作為新的master,并將其他slave的slaveof設(shè)置指向這個新的master。而判斷master redis是否掛掉,需要sentinel 說了算,只有不少于quorum個sentinel認為master redis掛掉,才會進行failover。因為這里只啟動了一個sentinel,所以配置quorum為1,若是啟動了多個sentinel用于分布式,可以將quorum設(shè)置>1。
    >>>?sentinel down-after-milliseconds mymaster 30000表示當master redis 30s 沒有應(yīng)答時,就可以斷定master掛掉了,但需要結(jié)合上面配置的quorum一起。>>> sentinel failover-timeout mymaster 18000若sentinel在該配置時間內(nèi)沒有完成failover操作(即故障時master/slave自動切換),則認為本次failover失敗。>>> sentinel parallel-syncs mymaster 1 指定在failover過程中,同時被sentinel reconfigure的最大slave實例數(shù)。由于reconfigure過程中,對應(yīng)的slave會中斷響應(yīng)客戶的請求,故為避免所有的slave同時不可用,該值需適當配小。回到頂部

    二、啟動Redis Sentinel

  • ./src/redis-sentinel sentinel.conf

  • 從上可以看出,master redis 為6379,而slave又兩個,分別為:6380和6381.此時在去觀察sentinel.conf,會發(fā)現(xiàn)sentinel.conf發(fā)生了變化,如下所示:
    回到頂部

    三、關(guān)閉master redis,測試failover


    大約過去半分鐘,后會看到如下:
    • slave 6380的日志記錄:
    • 再看看sentinel的提示信息:

    • 再來觀察sentinel.conf

    可以對比最初的sentinel.conf
    此時再分別看看6379/6380/6381的redis.conf:
    • 6379的redis.conf
    分2種情況情況1:當6379(原先的master redis)關(guān)閉后,還未重啟,此時的redis.conf文件內(nèi)沒有slaveof的配置;情況2:當6379服務(wù)啟動后,會在redis.conf的最后添加slaveof的配置,如下:
    同時可以看到sentinel輸出如下信息:e
    此時看看6379的日志信息:

    • 6380的redis.conf


    • 6381的redis.conf

    已經(jīng)將slaveof自動修改為:6380(新的master)
    測試新的同步信息:
    從上面的輸出結(jié)果可以看出,redis 主從復(fù)制依然有效。
    回到頂部

    四、重新切換為最初的master

    前面我們看到了當master掛掉時,sentinel會自動的從slave中挑選出一個作為master,并重新配置各redis實例的配置文件。當之前掛掉的master又重啟后,如果希望還是還原到原先的主從配置,可以通過如下操作來進行:
    登錄到sentinel,使用命令:
  • redis-cli -h 127.0.0.1 -p 26379 #26379為sentinel的端口
  • 執(zhí)行語句:
  • sentinel failover mymaster

  • 接下來我們來看看是否還原到之前的主從配置:
    • 先看看sentinel的輸出信息:


    查看sentinel的配置文件:

    接下來看看3個redis.conf是否自動變化了(reconfigure)
    • 6379的redis.conf
    全文搜索slaveof,沒有此配置選項,說明已經(jīng)發(fā)生了變化,因為6379此時就是master redis。
    • 6380的redis.conf

    在最后添加了:slaveof 127.0.0.1 6379;說明6380已經(jīng)從master重新變化為slave了。
    • 6381的redis.conf


    還可以通過如下方式進行說明:



    回到頂部

    五、參考鏈接

    《【Redis】配置redis主從復(fù)制》http://www.cnblogs.com/ssslinppp/p/5661419.html?《Configuring Redis High Availability》?http://www.veritas.com/community/blogs/configuring-redis-high-availability?《Redis Sentinel Documentation》 http://redis.io/topics/sentinel?
    《Windows下Redis Sentinel部署》http://bbs.redis.cn/forum.php?mod=viewthread&tid=715?




    來自為知筆記(Wiz)

    總結(jié)

    以上是生活随笔為你收集整理的【Redis】使用Redis Sentinel实现Redis HA的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。