国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Redis - 玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

2019-11-20 21:55Jackeyzhe Redis

這篇文章主要給大家介紹了關(guān)于Redis搭建集群之Sentinel的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Redis作為內(nèi)存數(shù)據(jù)庫,需要具備高可用的特點(diǎn),不然如果服務(wù)器宕機(jī),還在內(nèi)存里的數(shù)據(jù)就會丟失。我們最常用的高可用方法就是搭建集群,master機(jī)器掛了,可以讓slave機(jī)器頂上,繼續(xù)提供服務(wù)。但是Redis集群是不會自動進(jìn)行主從切換的,也就是說,如果主節(jié)點(diǎn)非常不爭氣的在凌晨3點(diǎn)掛了,那么運(yùn)維同學(xué)就要馬上起床,把從節(jié)點(diǎn)改成主節(jié)點(diǎn),這樣的操作是非常繁瑣低效的。為此,Redis官方提供了一種解決方案:Redis Sentinel

簡介

Redis Sentinel集群通常由3到5個節(jié)點(diǎn)組成,如果個別節(jié)點(diǎn)掛了,集群還可以正常運(yùn)作。它負(fù)責(zé)監(jiān)控Redis集群的健康情況。如果主節(jié)點(diǎn)掛掉,Sentinel集群會通過投票選擇一個新的主節(jié)點(diǎn)。當(dāng)原來的主節(jié)點(diǎn)恢復(fù)時,它會被當(dāng)做新的主節(jié)點(diǎn)的從節(jié)點(diǎn)重新加入Redis集群。

基本原理

Sentinel集群通過指定的配置文件發(fā)現(xiàn)master,對其進(jìn)行監(jiān)控,并且會發(fā)送info指令獲取master的從節(jié)點(diǎn)信息。Sentinel集群中的節(jié)點(diǎn)通過向其監(jiān)控的主從節(jié)點(diǎn)發(fā)送hello信息(包含Sentinel本身的ip、端口和id等內(nèi)容)來向其他Sentinel宣告自己的存在。

Sentinel集群通過訂閱連接來接收其他Sentinel的hello信息。

Sentinel集群通過ping命令來檢查監(jiān)控的實(shí)例狀態(tài),如果在指定時間內(nèi)沒有返回,則認(rèn)為該實(shí)例下線。

Sentinel觸發(fā)failover主從切換后,并不會馬上進(jìn)行,只有指定(quorum)Sentinel授權(quán)后,master節(jié)點(diǎn)被標(biāo)記為ODOWN狀態(tài)。這時才真正開始投票選擇新的master。

Sentinel選擇新的master的原則是:首先判斷優(yōu)先級,選擇優(yōu)先級較小的;如果優(yōu)先級相同,查看復(fù)制下標(biāo),選擇復(fù)制數(shù)據(jù)較多的;如果復(fù)制下標(biāo)也相同,就選擇進(jìn)程ID較小的。

Sentinel被授權(quán)后,它將會獲得宕掉的master的一份最新配置版本號(config-epoch),當(dāng)failover執(zhí)行結(jié)束以后,這個版本號將會被用于最新的配置,通過廣播形式通知其它Sentinel,其它的Sentinel則更新對應(yīng)master的配置。

基本使用

我們以Python為例,簡單說明一下在客戶端如何使用Sentinel

?
1
2
3
4
5
6
7
8
9
10
11
from redis.sentinel import Sentinel
 
if __name__ == '__main__':
 sentinel = Sentinel(['localhost', 26379], socket_timeout=0.1)
 print(sentinel.discover_master('mymaster'))
 print(sentinel.discover_slaves('mymaster'))
 master = sentinel.master_for('mymaster', socket_timeout=0.1)
 slave = sentinel.slave_for('mymaster', socket_timeout=0.1)
 master.set('follow', 'Jackeyzhe2018')
 follow = slave.get('follow')
 print(follow)

master_for和slave_for方法會從連接池中拿出一個連接來使用,如果從地址有多個,則會采用輪詢的方法。

當(dāng)redis發(fā)生了主從切換時,客戶端如何知道地址已經(jīng)變更了呢?我們從redis-py的源碼里找一找答案。

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

可以看到,redis在創(chuàng)建一個新的連接時,會調(diào)用get_master_address方法來獲取主節(jié)點(diǎn)地址。get_master_address方法中,客戶端先查詢主節(jié)點(diǎn)地址,然后與內(nèi)存中的地址進(jìn)行比較。如果不一致,則會斷開連接,然后使用新的地址重新進(jìn)行連接。

如果主節(jié)點(diǎn)沒有掛,而Sentinel主動進(jìn)行了主從切換,對于這種情況redis-py也做了處理。就是捕獲一個ReadOnlyError的異常,然后斷開連接,后續(xù)指令都需要重新進(jìn)行連接了。當(dāng)然,如果沒有修改性指令,那么連接就不會切換,不過數(shù)據(jù)也不會被破壞,所以影響不大。

動手搭建

關(guān)于Sentinel的工作原理和使用方法我們已經(jīng)有了大概的認(rèn)識,為了加深理解,我們來自己動手搭建一套Sentinel集群。

首先搭建我們我需要的redis集群環(huán)境

安裝好redis后,將redis目錄下的配置文件redis.conf復(fù)制3份。分別命名為redis6379.conf,redis6380.conf,redis6381.conf。

在redis6381.conf文件中修改以下幾項(xiàng)

?
1
2
3
4
bind 127.0.0.1
port 6381
logfile "6381.log"
dbfilename "dump-6381.rdb"

在redis6379.conf中修改

?
1
2
3
4
5
bind 127.0.0.1
port 6379
logfile "6379.log"
dbfilename "dump-6379.rdb"
slaveof 127.0.0.1 6381

redis6380.conf的修改參照redis6379.conf。修改完成后,分別啟動三個實(shí)例。就搭建好了我們想要的redis主從環(huán)境了。

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

我們連接上master節(jié)點(diǎn),可以看到它的主從配置信息

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

接著,我們來配置Sentinel集群。這里我們同樣配置三個實(shí)例。復(fù)制3份sentinel.conf文件,分別命名為sentinel-26379.conf,sentinel-26380.conf和sentinel-26381.conf。

sentinel-26379.conf文件中編輯以下內(nèi)容

?
1
2
3
4
5
6
7
8
port 26379
daemonize yes
logfile "26379.log"
dir /home/xxx/redis/data
sentinel monitor mymaster 127.0.0.1 6381 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

sentinel-26380.conf和sentinel-26381.conf的內(nèi)容與上述類似。配置好后,我們使用命令redis-sentinel來啟動3個sentinel實(shí)例。

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

此時,我們用redis-cli命令連接26379的實(shí)例,查看sentinel的信息。

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

發(fā)現(xiàn)它已經(jīng)開始監(jiān)控我們的3個redis節(jié)點(diǎn)了。這時我們的整個集群就部署好了,接下來測試一下。

kill掉master節(jié)點(diǎn),查看sentinel的日志,會發(fā)現(xiàn)sentinel已經(jīng)按照我們前面說的步驟選擇了新的master。

玩轉(zhuǎn)Redis搭建集群之Sentinel詳解

此時再來看sentinel信息。

此時,6380已經(jīng)成了新的master。

恭喜你,以后都不需要在凌晨起床切換Redis主從實(shí)例了。

總結(jié):

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://mp.weixin.qq.com/s/VJcogzHiiLqlXcXZB4S9Zw

延伸 · 閱讀

精彩推薦
  • RedisRedis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    Redis 事務(wù)知識點(diǎn)相關(guān)總結(jié)

    這篇文章主要介紹了Redis 事務(wù)相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redisredis實(shí)現(xiàn)排行榜功能

    redis實(shí)現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實(shí)現(xiàn)排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis的主從架構(gòu),能幫助我們實(shí)現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關(guān)于Redis如何實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離的相關(guān)資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關(guān)于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具...

    一線碼農(nóng)5812019-11-18
  • RedisRedis的配置、啟動、操作和關(guān)閉方法

    Redis的配置、啟動、操作和關(guān)閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關(guān)閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • RedisRedis全量復(fù)制與部分復(fù)制示例詳解

    Redis全量復(fù)制與部分復(fù)制示例詳解

    這篇文章主要給大家介紹了關(guān)于Redis全量復(fù)制與部分復(fù)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis爬蟲具有一定的參考學(xué)習(xí)...

    豆子先生5052019-11-27
  • Redis詳解Redis復(fù)制原理

    詳解Redis復(fù)制原理

    與大多數(shù)db一樣,Redis也提供了復(fù)制機(jī)制,以滿足故障恢復(fù)和負(fù)載均衡等需求。復(fù)制也是Redis高可用的基礎(chǔ),哨兵和集群都是建立在復(fù)制基礎(chǔ)上實(shí)現(xiàn)高可用的...

    李留廣10222021-08-09
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线观看91 | 国产人妖在线 | 亚洲免费网站 | 中文字幕在线观看一区二区 | 好看的一级毛片 | 久久亚洲综合 | 久久久亚洲精 | 亚洲日本va中文字幕 | 国产成人精品一区二区三区四区 | 亚洲高清精品视频 | 亚洲综合区 | 国产日产久久高清欧美一区 | 久久久久久久久99精品 | 免费在线一区二区 | 日韩在线免费播放 | 国内精品视频 | 极品国产精品 | 欧美日韩国产在线 | 免费观看全黄做爰大片国产 | 国产精品久久久久久久久久久久久久 | 欧美在线视频a | 一区二区三区久久久久久 | 蜜桃视频网站在线观看 | 日韩一区在线视频 | 午夜影院网站 | 亚洲国产精品99久久久久久久久 | 欧美精品 | 4虎tv| 二区免费视频 | 精品久久久久久国产 | 国产欧美日韩在线 | 欧美狠狠操 | 国产成人毛片 | 激情欧美一区二区三区中文字幕 | 日韩免费 | 久久亚洲一区二区三区明星换脸 | 中国毛片基地 | 国产在线观看一区二区 | 国产一区二区视频在线 | 黄色影片免费观看 | 一区二区三区精品 |