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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis-sentinel高可用配置(2)

發(fā)布時(shí)間:2024/10/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis-sentinel高可用配置(2) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:說明

前面我們已經(jīng)配置了redis的主從配置(鏈接),這種主從架構(gòu)有一個(gè)問題,當(dāng)主master出現(xiàn)了故障了,怎么切換到從服務(wù)器上呢?

第一種:手動(dòng)切換, 這種肯定會(huì)造成比較長一段時(shí)間的用戶不能訪問redis了,那有沒有更好的辦法呢?

第二種:redis官方的 redis-sentinel 哨兵高可用,可以自動(dòng)切換到從服務(wù)器,把從服務(wù)器提升為主服務(wù)器,繼續(xù)進(jìn)行服務(wù)。

sentinel的作用
Redis的sentinel系統(tǒng)可以管理多個(gè)Redis實(shí)例,該系統(tǒng)主要有以下三個(gè)任務(wù):
1) 監(jiān)控 : sentinel會(huì)不斷的檢查你的主服務(wù)器和從服務(wù)器是否正常運(yùn)行
2) 提醒:當(dāng)被監(jiān)控的某個(gè)Redis服務(wù)器出問題時(shí),sentinel可以通過api向管理員或者其他應(yīng)用程序發(fā)通知
3)自動(dòng)轉(zhuǎn)移故障:當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí),sentinel會(huì)開始一次自動(dòng)故障遷移操作,它會(huì)將失效主服務(wù)器的其中一個(gè)從服務(wù)器升級(jí)為主服務(wù)器,并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器;

當(dāng)客戶端試圖連接失效的主服務(wù)器時(shí),集群也會(huì)向客戶端返回新的主服務(wù)器地址,使得集群可以用新主服務(wù)器代替失效的服務(wù)器。

關(guān)于sentinel
sentinel可以在redis編譯后的src文檔中找到,它是一個(gè)命名為redis-sentinel的程序

二:sentinel的配置

配置文件的格式:
sentinel 選項(xiàng)的名字 主Redis實(shí)例的名字 選項(xiàng)的值

Redis 源碼中包含了一個(gè)名為 sentinel.conf 的文件, 這個(gè)文件是一個(gè)帶有詳細(xì)注釋的 Sentinel 配置文件示例。
運(yùn)行一個(gè) Sentinel 配置示例如下:

port 26329 sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 sentinel notification-script mymaster <script-path>

?

配置文件解釋:
第一行配置指示 Sentinel 去監(jiān)視一個(gè)名為 mymaster 的主redis實(shí)例, 這個(gè)主實(shí)例的 IP 地址為本機(jī)地址127.0.0.1 , 端口號(hào)為 6379 , 而將這個(gè)主服務(wù)器判斷為失效至少需要 2 個(gè) Sentinel 進(jìn)程的同意,只要同意 Sentinel 的數(shù)量不達(dá)標(biāo),自動(dòng)failover就不會(huì)執(zhí)行。

同時(shí),一個(gè)Sentinel都需要獲得系統(tǒng)中大多數(shù)Sentinel進(jìn)程的支持, 才能發(fā)起一次自動(dòng)故障遷移, 并預(yù)留一個(gè)給定的配置紀(jì)元 (configuration Epoch ,一個(gè)配置紀(jì)元就是一個(gè)新主服務(wù)器配置的版本號(hào))。

換句話說, 在只有少數(shù)(minority) Sentinel 進(jìn)程正常運(yùn)作的情況下, Sentinel 是不能執(zhí)行自動(dòng)故障遷移的。

各個(gè)選項(xiàng)的功能:
down-after-milliseconds
該選項(xiàng)指定了 Sentinel 認(rèn)為Redis實(shí)例已經(jīng)失效所需的毫秒數(shù)。
當(dāng)實(shí)例超過該時(shí)間沒有返回PING,或者直接返回錯(cuò)誤, 那么 Sentinel 將這個(gè)實(shí)例標(biāo)記為主觀下線(subjectively down,簡稱 SDOWN )。
只有一個(gè) Sentinel進(jìn)程將實(shí)例標(biāo)記為主觀下線并不一定會(huì)引起實(shí)例的自動(dòng)故障遷移: 只有在足夠數(shù)量的 Sentinel 都將一個(gè)實(shí)例標(biāo)記為主觀下線之后,實(shí)例才會(huì)被標(biāo)記為客觀下線(objectively down, 簡稱 ODOWN ), 這時(shí)自動(dòng)故障遷移才會(huì)執(zhí)行。

parallel-syncs
該選項(xiàng)指定了在執(zhí)行故障轉(zhuǎn)移時(shí), 最多可以有多少個(gè)從Redis實(shí)例在同步新的主實(shí)例, 在從Redis實(shí)例較多的情況下這個(gè)數(shù)字越小,同步的時(shí)間越長,完成故障轉(zhuǎn)移所需的時(shí)間就越長。

盡管復(fù)制過程的絕大部分步驟都不會(huì)阻塞從實(shí)例, 但從redis實(shí)例在載入主實(shí)例發(fā)來的 RDB 文件時(shí), 仍然會(huì)造成從實(shí)例在一段時(shí)間內(nèi)不能處理命令請(qǐng)求: 如果全部從實(shí)例一起對(duì)新的主實(shí)例進(jìn)行同步, 那么就可能會(huì)造成所有從Redis實(shí)例在短時(shí)間內(nèi)全部不可用的情況出現(xiàn)。
所以從實(shí)例被設(shè)置為允許使用過期數(shù)據(jù)集(參見對(duì) redis.conf 文件中對(duì) slave-serve-stale-data 選項(xiàng)),可以緩解所有從實(shí)例都在同一時(shí)間向新的主實(shí)例發(fā)送同步請(qǐng)求的負(fù)擔(dān)。你可以通過將這個(gè)值設(shè)為 1 來保證每次只有一個(gè)從Redis實(shí)例處于不能處理命令請(qǐng)求的同步狀態(tài)。

failover-timeout
如果在該時(shí)間(ms)內(nèi)未能完成failover操作,則認(rèn)為該failover失敗。

notification-script
指定sentinel檢測到該監(jiān)控的redis實(shí)例指向的實(shí)例異常時(shí),調(diào)用的報(bào)警腳本。該配置項(xiàng)可選,但是很常用。

三:主觀下線和客觀下線

前面說過, Redis 的 Sentinel 中關(guān)于下線(down)有兩個(gè)不同的概念:
主觀下線(Subjectively Down, 簡稱 SDOWN)指的是單個(gè) Sentinel 實(shí)例對(duì)服務(wù)器做出的下線判斷。
客觀下線(Objectively Down, 簡稱 ODOWN)指的是多個(gè) Sentinel 實(shí)例在對(duì)同一個(gè)服務(wù)器做出 SDOWN 判斷, 并且通過 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服務(wù)器下線判斷。 (一個(gè) Sentinel 可以通過向另一個(gè) Sentinel 發(fā)送 SENTINEL is-master-down-by-addr 命令來詢問對(duì)方是否認(rèn)為給定的服務(wù)器已下線。)


如果一個(gè)服務(wù)器沒有在 master-down-after-milliseconds 選項(xiàng)所指定的時(shí)間內(nèi), 對(duì)向它發(fā)送 PING 命令的 Sentinel 返回一個(gè)有效回復(fù)(valid reply), 那么 Sentinel 就會(huì)將這個(gè)服務(wù)器標(biāo)記為主觀下線。

?

服務(wù)器對(duì) PING 命令的有效回復(fù)可以是以下三種回復(fù)的其中一種:
返回 +PONG 。
返回 -LOADING 錯(cuò)誤。
返回 -MASTERDOWN 錯(cuò)誤。
如果服務(wù)器返回除以上三種回復(fù)之外的其他回復(fù), 又或者在指定時(shí)間內(nèi)沒有回復(fù) PING 命令, 那么 Sentinel 認(rèn)為服務(wù)器返回的回復(fù)無效(non-valid)


注意, 一個(gè)服務(wù)器必須在 master-down-after-milliseconds 毫秒內(nèi), 一直返回?zé)o效回復(fù)才會(huì)被 Sentinel 標(biāo)記為主觀下線。

舉個(gè)例子, 如果 master-down-after-milliseconds 選項(xiàng)的值為 30000 毫秒(30 秒), 那么只要服務(wù)器能在每 29 秒之內(nèi)返回至少一次有效回復(fù), 這個(gè)服務(wù)器就仍然會(huì)被認(rèn)為是處于正常狀態(tài)的。

四:每個(gè) Sentinel 都需要定期執(zhí)行的任務(wù)

  • 每個(gè) Sentinel 以每秒鐘一次的頻率向它所知的主服務(wù)器、從服務(wù)器以及其他 Sentinel 實(shí)例發(fā)送一個(gè) PING 命令。
  • 如果一個(gè)實(shí)例(instance)距離最后一次有效回復(fù) PING 命令的時(shí)間超過 down-after-milliseconds 選項(xiàng)所指定的值, 那么這個(gè)實(shí)例會(huì)被 Sentinel 標(biāo)記為主觀下線。 一個(gè)有效回復(fù)可以是: +PONG 、 -LOADING 或者 -MASTERDOWN 。
  • 如果一個(gè)主服務(wù)器被標(biāo)記為主觀下線, 那么正在監(jiān)視這個(gè)主服務(wù)器的所有 Sentinel 要以每秒一次的頻率確認(rèn)主服務(wù)器的確進(jìn)入了主觀下線狀態(tài)。
  • 如果一個(gè)主服務(wù)器被標(biāo)記為主觀下線, 并且有足夠數(shù)量的 Sentinel (至少要達(dá)到配置文件指定的數(shù)量)在指定的時(shí)間范圍內(nèi)同意這一判斷, 那么這個(gè)主服務(wù)器被標(biāo)記為客觀下線。
  • 在一般情況下, 每個(gè) Sentinel 會(huì)以每 10 秒一次的頻率向它已知的所有主服務(wù)器和從服務(wù)器發(fā)送 INFO 命令。 當(dāng)一個(gè)主服務(wù)器被 Sentinel 標(biāo)記為客觀下線時(shí), Sentinel 向下線主服務(wù)器的所有從服務(wù)器發(fā)送 INFO 命令的頻率會(huì)從 10 秒一次改為每秒一次。
  • 當(dāng)沒有足夠數(shù)量的 Sentinel 同意主服務(wù)器已經(jīng)下線, 主服務(wù)器的客觀下線狀態(tài)就會(huì)被移除。 當(dāng)主服務(wù)器重新向 Sentinel 的 PING命令返回有效回復(fù)時(shí), 主服務(wù)器的主管下線狀態(tài)就會(huì)被移除。

五:自動(dòng)發(fā)現(xiàn) Sentinel 和從服務(wù)器

一個(gè) Sentinel 可以與其他多個(gè) Sentinel 進(jìn)行連接, 各個(gè) Sentinel 之間可以互相檢查對(duì)方的可用性, 并進(jìn)行信息交換。
你無須為運(yùn)行的每個(gè) Sentinel 分別設(shè)置其他 Sentinel 的地址, 因?yàn)?Sentinel 可以通過發(fā)布與訂閱功能來自動(dòng)發(fā)現(xiàn)正在監(jiān)視相同主服務(wù)器的其他 Sentinel , 這一功能是通過向頻道 __sentinel__:hello 發(fā)送信息來實(shí)現(xiàn)的。
與此類似, 你也不必手動(dòng)列出主服務(wù)器屬下的所有從服務(wù)器, 因?yàn)?Sentinel 可以通過詢問主服務(wù)器來獲得所有從服務(wù)器的信息。

  • 每個(gè) Sentinel 會(huì)以每兩秒一次的頻率, 通過發(fā)布與訂閱功能, 向被它監(jiān)視的所有主服務(wù)器和從服務(wù)器的 __sentinel__:hello 頻道發(fā)送一條信息, 信息中包含了 Sentinel 的 IP 地址、端口號(hào)和運(yùn)行 ID (runid)
  • 每個(gè) Sentinel 都訂閱了被它監(jiān)視的所有主服務(wù)器和從服務(wù)器的 __sentinel__:hello 頻道, 查找之前未出現(xiàn)過的 sentinel (looking for unknown sentinels)。 當(dāng)一個(gè) Sentinel 發(fā)現(xiàn)一個(gè)新的 Sentinel 時(shí), 它會(huì)將新的 Sentinel 添加到一個(gè)列表中, 這個(gè)列表保存了 Sentinel 已知的, 監(jiān)視同一個(gè)主服務(wù)器的所有其他 Sentinel
  • Sentinel 發(fā)送的信息中還包括完整的主服務(wù)器當(dāng)前配置(configuration)。 如果一個(gè) Sentinel 包含的主服務(wù)器配置比另一個(gè) Sentinel 發(fā)送的配置要舊, 那么這個(gè) Sentinel 會(huì)立即升級(jí)到新配置上。
  • 在將一個(gè)新 Sentinel 添加到監(jiān)視主服務(wù)器的列表上面之前, Sentinel 會(huì)先檢查列表中是否已經(jīng)包含了和要添加的 Sentinel 擁有相同運(yùn)行 ID 或者相同地址(包括 IP 地址和端口號(hào))的 Sentinel , 如果是的話, Sentinel 會(huì)先移除列表中已有的那些擁有相同運(yùn)行 ID 或者相同地址的 Sentinel , 然后再添加新 Sentinel?

六:Sentinel API

在默認(rèn)情況下, Sentinel 使用 TCP 端口 26379 (普通 Redis 服務(wù)器使用的是 6379 )。
Sentinel 接受 Redis 協(xié)議格式的命令請(qǐng)求, 所以你可以使用 redis-cli 或者任何其他 Redis 客戶端來與 Sentinel 進(jìn)行通訊。
有兩種方式可以和 Sentinel 進(jìn)行通訊:

  • 第一種方法是通過直接發(fā)送命令來查詢被監(jiān)視 Redis 服務(wù)器的當(dāng)前狀態(tài), 以及 Sentinel 所知道的關(guān)于其他 Sentinel 的信息, 諸如此類。
  • 另一種方法是使用發(fā)布與訂閱功能, 通過接收 Sentinel 發(fā)送的通知: 當(dāng)執(zhí)行故障轉(zhuǎn)移操作, 或者某個(gè)被監(jiān)視的服務(wù)器被判斷為主觀下線或者客觀下線時(shí), Sentinel 就會(huì)發(fā)送相應(yīng)的信息

Sentinel 命令
以下列出的是 Sentinel 接受的命令:

  • PING :返回 PONG 。
  • SENTINEL masters :列出所有被監(jiān)視的主服務(wù)器,以及這些主服務(wù)器的當(dāng)前狀態(tài)。
  • SENTINEL slaves <master name> :列出給定主服務(wù)器的所有從服務(wù)器,以及這些從服務(wù)器的當(dāng)前狀態(tài)。
  • SENTINEL get-master-addr-by-name <master name> : 返回給定名字的主服務(wù)器的 IP 地址和端口號(hào)。 如果這個(gè)主服務(wù)器正在執(zhí)行故障轉(zhuǎn)移操作, 或者針對(duì)這個(gè)主服務(wù)器的故障轉(zhuǎn)移操作已經(jīng)完成, 那么這個(gè)命令返回新的主服務(wù)器的 IP 地址和端口號(hào)。
  • SENTINEL reset <pattern> : 重置所有名字和給定模式 pattern 相匹配的主服務(wù)器。 pattern 參數(shù)是一個(gè) Glob 風(fēng)格的模式。 重置操作清除主服務(wù)器目前的所有狀態(tài), 包括正在執(zhí)行中的故障轉(zhuǎn)移, 并移除目前已經(jīng)發(fā)現(xiàn)和關(guān)聯(lián)的, 主服務(wù)器的所有從服務(wù)器和 Sentinel 。
  • SENTINEL failover <master name> : 當(dāng)主服務(wù)器失效時(shí), 在不詢問其他 Sentinel 意見的情況下, 強(qiáng)制開始一次自動(dòng)故障遷移 (不過發(fā)起故障轉(zhuǎn)移的 Sentinel 會(huì)向其他 Sentinel 發(fā)送一個(gè)新的配置,其他 Sentinel 會(huì)根據(jù)這個(gè)配置進(jìn)行相應(yīng)的更新)

七:配置sentinel實(shí)例

1:前面文章的主從配置
鏈接 http://www.cnblogs.com/starlion/p/9071003.html 接著繼續(xù)配置redis sentinel
a)修改前面的主從配置文件
這3個(gè)配置文件在ip為 192.168.0.109 虛擬機(jī)上
首先: 把 master slave1 slave2 目錄下面的redis.conf配置文件里的 bind 修改為 0.0.0.0
其次:把slave1 slave2目錄下的redis.conf配文件里的 slaveof 修改為 slaveof 192.168.0.109 1000

然后重啟3個(gè)redis實(shí)例

b) 配置sentinel文件
我們把sentinel配置在 192.168.0.110 的虛擬機(jī)上
打開redis的安裝目錄,在目錄下就有一個(gè)sentinel.conf的配置文件,這個(gè)就是配置sentinel的魔板文件
我們配置3個(gè)sentinel文件,文件名分別為 sentinel1.conf sentinel2.conf sentinel3.conf
# vi /user/local/redis/sentinel1.conf

protected-mode no logfile "/var/log/sentinel.log" port 26379 sentinel monitor mymaster 192.168.0.109 1000 2 sentinel down-after-milliseconds mymaster 15000 sentinel config-epoch mymaster 1

?

# vi /user/local/redis/sentinel2.conf

protected-mode no logfile "/var/log/sentinel.log" port 26380 sentinel monitor mymaster 192.168.0.109 1000 2 sentinel down-after-milliseconds mymaster 15000 sentinel config-epoch mymaster 1

?

# vi /user/local/redis/sentinel3.conf

protected-mode no logfile "/var/log/sentinel.log" port 26381 sentinel monitor mymaster 192.168.0.109 1000 2 sentinel down-after-milliseconds mymaster 15000 sentinel config-epoch mymaster 1

?

c) 啟動(dòng)sentinel

nohup ./bin/redis-sentinel ./sentinel1.conf & nohup ./bin/redis-sentinel ./sentinel2.conf & nohup ./bin/redis-sentinel ./sentinel3.conf &

?

2. 連接sentinel
在默認(rèn)情況下,Sentinel 使用TCP端口26379(普通 Redis 服務(wù)器使用的是 6379)。Sentinel 接受 Redis 協(xié)議格式的命令請(qǐng)求, 所以你可以使用 redis-cli 或者任何其他 Redis 客戶端來與 Sentinel 進(jìn)行通訊。
有兩種方式可以和 Sentinel 進(jìn)行通訊:
第一種方法是通過直接發(fā)送命令來查詢被監(jiān)視 Redis 服務(wù)器的當(dāng)前狀態(tài), 以及進(jìn)行主動(dòng)轉(zhuǎn)移等操作。這些命令包括:
a). PING :返回 PONG

[root@localhost]# ./redis-cli -p 26379 127.0.0.1:26379> ping PONG

?

b). SENTINEL masters :列出所有被監(jiān)視的主Redis服務(wù)實(shí)例,以及這些主服務(wù)實(shí)例的當(dāng)前狀態(tài)。SENTINEL slaves :列出給定主服務(wù)實(shí)例的所有從實(shí)例,以及這些從實(shí)例的當(dāng)前狀態(tài)

127.0.0.1:26379> sentinel masters 1) 1) "name" 2) "mymaster" 3) "ip" 4) "192.168.0.109" 5) "port" 6) "1000" 7) "runid" 8) "2ee92794d04b4dcb25f684a9aecd356eb346d80d" 9) "flags" 10) "master" ... ...... 35) "quorum" 36) "2" 37) "failover-timeout" 38) "180000" 39) "parallel-syncs" 40) "1" 41) "notification-script"127.0.0.1:26379> sentinel slaves mymaster 1) 1) "name" 2) "192.168.0.109:2000" 3) "ip" 4) "192.168.0.109" 5) "port" 6) "2000" 7) "runid" 8) "4d590175947961683240d7077a4d34e657f072c0" ... ... 36) "3000" 37) "slave-priority" 38) "100" 39) "slave-repl-offset" 40) "10696170" 2) 1) "name" 2) "192.168.0.109:3000" 3) "ip" 4) "192.168.0.109" 5) "port" 6) "3000" 7) "runid" ... ... 33) "master-host" 34) "192.168.0.109" 35) "master-port" 36) "3000" 37) "slave-priority" 38) "100" 39) "slave-repl-offset" 40) "10696170"

?

c). SENTINEL get-master-addr-by-name : 返回給定名字的主實(shí)例的 IP 地址和端口號(hào)。 如果這個(gè)主實(shí)例正在執(zhí)行故障轉(zhuǎn)移操作, 或者針對(duì)這個(gè)主實(shí)例的故障轉(zhuǎn)移操作已經(jīng)完成, 那么這個(gè)命令返回新的主服務(wù)器的 IP 地址和端口號(hào)。

127.0.0.1:26379> sentinel get-master-addr-by-name mymaster 1) "192.168.0.109" 2) "1000"

?

d). SENTINEL failover :進(jìn)行一次主動(dòng)的failover。即在不詢問其他 Sentinel 意見的情況下, 強(qiáng)制開始一次自動(dòng)故障遷移 。發(fā)起故障轉(zhuǎn)移的 Sentinel 會(huì)向其他 Sentinel 發(fā)送一個(gè)新的配置,其他 Sentinel 會(huì)根據(jù)這個(gè)配置進(jìn)行相應(yīng)的更新

127.0.0.1:26379> sentinel failover mymaster OK

?

e). SENTINEL reset : 重置所有名字和給定模式 pattern 相匹配的主服務(wù)器。 pattern 參數(shù)是一個(gè) Glob 風(fēng)格的模式。 重置操作清除該sentinel的所保存的所有狀態(tài)信息,并進(jìn)行一次重新的發(fā)現(xiàn)過程。

127.0.0.1:26379> sentinel reset myredis (integer) 1

?

第二種方法是使用發(fā)布與訂閱功能, 通過接收 Sentinel 發(fā)送的通知: 當(dāng)執(zhí)行故障轉(zhuǎn)移操作, 或者某個(gè)被監(jiān)視的實(shí)例被判斷為主觀下線或者客觀下線時(shí), Sentinel 就會(huì)發(fā)送相應(yīng)的信息。
一個(gè)頻道能夠接收和這個(gè)頻道的名字相同的事件。 比如說, 名為 +sdown 的頻道就可以接收所有實(shí)例進(jìn)入主觀下線(SDOWN)狀態(tài)的事件。
通過執(zhí)行 PSUBSCRIBE * 命令可以接收所有事件信息。例如:

127.0.0.1:26379> PSUBSCRIBE * Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "*" 3) (integer) 1

?

被動(dòng)failover測試
查看當(dāng)前的主redis ip和端口是多少

[root@localhost]# ./redis-cli -p 1000 -h 192.168.0.109 192.168.0.109:1000> info replication # Replication role:slave master_host:192.168.0.109 master_port:2000

?

master ip 192.168.0.109
port 2000
關(guān)掉 2000 的這個(gè)redis實(shí)例,等 down-after-millisenonds后,查看/var/log/sentinel.log 日志,

20:05:25.531 * +switch-master mymaster 192.168.0.109 2000 192.168.0.109 3000 20:05:25.532 * +slave slave 192.168.0.109:1000 192.168.0.109 1000 @ mymaster 192.168.0.109 3000 20:05:25.532 * +slave slave 192.168.0.109:2000 192.168.0.109 2000 @ mymaster 192.168.0.109 3000 20:05:39.531 * +sdown slave 192.168.0.109:2000 192.168.0.109 2000 @ mymaster 192.168.0.109 3000 20:05:39.535 * +sdown slave 192.168.0.109:2000 192.168.0.109 2000 @ mymaster 192.168.0.109 3000 20:05:40.573 * +sdown slave 192.168.0.109:2000 192.168.0.109 2000 @ mymaster 192.168.0.109 3000

?

看日志,這時(shí)候master 是 3000,登錄上 3000 服務(wù)器,看看端口3000的redis實(shí)例是不是master

[root@localhost]# ./redis-cli -p 3000 -h 192.168.0.109 192.168.0.109:3000> info replication # Replication role:master connected_slaves:1 slave0:ip=192.168.0.109,port=1000,state=online,offset=78092,lag=0

?

我們啟動(dòng)redis實(shí)例,它會(huì)自動(dòng)作為slave連上 3000 這臺(tái)master redis實(shí)例
查看日志: vi /usr/local/redis/slave1/redis.log, 是否連上master,可以看到下面的日志連上了

20:02:01.127 * Connecting to MASTER 192.168.0.109:3000 20:02:01.128 * MASTER <-> SLAVE sync started 20:02:01.128 * Non blocking connect for SYNC fired the event. 20:02:01.129 * Master replied to PING, replication can continue... 20:02:01.130 * Partial resynchronization not possible (no cached master) 20:02:01.153 * Full resync from master: 4d590175947961683240d7077a4d34e657f072c0:171641 20:02:01.188 * MASTER <-> SLAVE sync: receiving 76 bytes from master 20:02:01.189 * MASTER <-> SLAVE sync: Flushing old data 20:02:01.189 * MASTER <-> SLAVE sync: Loading DB in memory 20:02:01.190 * MASTER <-> SLAVE sync: Finished with success

?

連上2000的客戶端,看看情況:

[root@localhost]# ./redis-cli -p 2000 -h 192.168.0.109 192.168.0.109:2000> info replication # Replication role:slave master_host:192.168.0.109 master_port:3000

2000這臺(tái)實(shí)例是一個(gè)slave,說明成功連上了

測試成功。最后需要注意的是,sentinel集群自身也需要多數(shù)機(jī)制,也就是2個(gè)sentinel進(jìn)程時(shí),掛掉一個(gè)另一個(gè)就不可用了。

?

參考:
http://debugo.com/redis-sentinel/
https://redis.io/topics/sentinel
http://redisdoc.com/topic/sentinel.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/jiujuan/p/9091337.html

總結(jié)

以上是生活随笔為你收集整理的redis-sentinel高可用配置(2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产乱人伦精品 | 黄色大片一级片 | 欧美大片高清免费观看 | 深夜视频一区二区三区 | 欧美性俱乐部 | 先锋资源av网 | 丰满人妻一区二区三区四区53 | 老司机午夜精品视频 | 成人妇女淫片aaaa视频 | 四虎成人在线观看 | 成人首页| 国产香蕉97碰碰碰视频在线观看 | 香蕉在线视频播放 | 欧美成人aaa | 国产片一区二区 | 四虎免看黄 | 国产精品一级黄色片 | 在线免费看av的网站 | 欧美一区二区三区久久 | 97超碰国产在线 | 一二三四av | 扒开jk护士狂揉免费 | 日本一二三区不卡 | 欧美在线一二三四区 | 欧美人在线 | av一级黄色片 | 久久人人爽人人人人片 | 亚洲乱码一区二区三区在线观看 | 国产一区黄色 | 国产一级一级 | 亚洲精选一区二区三区 | 日精品| 91中文字幕| 九热在线视频 | 人人射av| 能免费看黄色的网站 | 欧美成人做爰猛烈床戏 | 精品视频一区二区在线观看 | 亚洲综合精品国产一区二区三区 | 亚洲欧美成人一区二区 | 久久久久亚洲av片无码v | 国产一级二级三级精品 | 高清视频一区二区三区 | 亚洲v欧美 | 欧美性生交大片免费看 | 久久特黄 | 国产成人精品一区二区三区视频 | 神马久久久久久久 | 久久久欧美精品sm网站 | 日本xxxx高潮少妇 | 九色福利| 久射久 | 欧美另类z0z变态 | 精品一区二区久久久久久按摩 | 国产精品蜜臀av | 91天堂网| 欧洲做受高潮欧美裸体艺术 | 中文字幕在线播 | 黄色在线观看视频网站 | 欧美一级全黄 | 国产精品扒开腿做爽爽爽男男 | 国产97色在线 | 日韩 | 蜜桃传媒一区二区亚洲av | 黄瓜视频在线观看污 | 蜜臀av免费一区二区三区水牛 | 精品视频一区二区 | 国产日批视频 | 国产美女精品久久久 | 日韩欧美在线观看视频 | 成人在线网址 | 丰满少妇xbxb毛片日本 | 国产精品111 | 青春草在线视频免费观看 | 观看av| 国产日本一区二区 | 日本少妇在线观看 | 肉丝肉足丝袜一区二区三区 | 黄色激情网址 | 亚洲区在线 | 91视频专区 | 性欧美videos高清hd4k | 孕妇丨91丨九色 | 涩涩视频在线 | 九九这里只有精品视频 | 99精品在线播放 | 免费毛片网站 | 成人欧美一区二区 | 国产91白丝在一线播放 | 99国产精 | 我和我的太阳泰剧在线观看泰剧 | 最新不卡av | 久久久久久在线观看 | 亚洲在线成人 | 2019自拍偷拍 | 国产黄频 | 欧美一区二区三区 | 国产浮力影院 | 精品人妻一区二区三区含羞草 | a毛片成人 |