日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

環境要求

  • ubuntu系統:20.04
  • Docker版本:20.10.7
  • redis版本:6.0.6

步驟

由于我這里已經有相應的redis鏡像,這里就不記錄了,關于docker一些基礎知識可以看我以前的筆記

開啟3臺redis服務,一個當作master,另兩個當slave

#這里就把配置文件和數據映射到宿主機中了,如果是生產環境下,需要這做映射

#開啟主服務,端口6379

docker run --name redis-master -d -p 6379:6379 redis:6.0.6

#開啟2臺從服務,端口6380,6381

docker run --name redis-slave1 -d -p 6380:6379 redis:6.0.6

docker run --name redis-slave2 -d -p 6381:6379 redis:6.0.6

Docker搭建Redis主從復制+哨兵模式

 

配置主從

這里演示就寫配置文件了,這樣的話,服務重啟后就失效了,這里主要是記錄一下過程,就 省略了....

查看各個服務的ip地址

docker inspect 容器id或者使用 docker network inspect bridge查看ip地 址

#ip地址如下

#master

172.17.0.2

#slave1

172.17.0.3

#slave2

172.17.0.4

進入容器內部,設置主從配置

master主機

#進入容器

docker exec -it redis-master /bin/bash

#執行redis-cli命令

redis-cli

#執行info replication 查看主從信息

info replication

執行info replication 查看主從信息

Docker搭建Redis主從復制+哨兵模式

 

在沒有設置主從時,每個redis服務的角色都是master

在兩臺從服務器上執行如下命令

在從服務器上配置主服務器ip+端口號

#命令如下

slaveof 172.17.0.2 6379

#172.17.0.2 master的ip

#6379 master的端口

通過 info replication 查看role已經變成slave

Docker搭建Redis主從復制+哨兵模式

 

在master 服務器上使用info replication查看信息

這里可以看到如下信息,說明主從搭建完成了

Docker搭建Redis主從復制+哨兵模式

 

測試

#在master上寫值,可以在從服務器上讀取到,這里圖略

注意

當設置完主從后,寫數據只能從master 寫入,不能在從服務器上寫入,會報錯

Docker搭建Redis主從復制+哨兵模式

 

問題

如果master由于某種原因掛了,咋辦,在以前的版本只能手工處理切換,現在可以哨兵來解決!

生產環境使用的哨兵模式搭建主從

創建一個哨兵服務

我這里由于是測試,只開啟了一個哨兵服務,如果是線上需要開啟多臺,來保證高可用,最好設置成3臺以上

#開啟一個哨兵docker服務
docker run -d --name redis-sentinel -p 26379:26379 redis:6.0.6
#26379 redis-sentinel默認端口,需要做下端口映射,要不無法進行通信

進入到redis-sentinel容器中進行配置

進入容器

docker exec -it redis-sentinel /bin/bash

創建sentinel.conf 文件

#由于容器里沒有vim,vi編輯器,為了保持容器最小化,我這里使用echo進行操作

echo "sentinel monitor mymaster 172.2.0.2 6379 1" >> sentinel.conf

#添加后臺運行,我 這里為了方便截圖,并沒有設置后臺運行

echo "daemonize yes" >>sentinel.conf

#也可以指定目錄

echo "logfile "/log.txt"" >>sentinel.conf

啟動

redis-sentinel sentinel.conf

Docker搭建Redis主從復制+哨兵模式

 

測試

把redis-master停掉,來看下是否能自動切換master

關閉redis-master

docker stop redis-master

等待30s后,查看redis-sentinel日志

Docker搭建Redis主從復制+哨兵模式

 

這里可以看到,已經把redis-slave2切換成了master,進入到redis-slave2容器中,可以看到如下圖

Docker搭建Redis主從復制+哨兵模式

 

問題

如果再把redis-master重啟后,它還會繼續當master嗎? 答案是:不會,

如下圖

Docker搭建Redis主從復制+哨兵模式

 

總結

其實這咱哨兵模式會在生產環境下用的最多,sentinel.conf里的配置也不是和上面那樣簡單,接下來說下sentinel.conf配置文件里常用的一些配置

sentinel.conf常用配置

#端口

port 26379 #可以修改

#監聽

sentinel monitor <master-name> <ip> <port> <quorum>

#master-name 可以自定義

#quorum 是一個數字:當有多個sentinel時,指明當有多少個sentinel認為一個master失效時,master才算真正失效,比方說:如果是數字3,則說明得有3個sentinel說master失效時,master才真正的客觀下線

#ip 要寫master的真正ip

sentinel monitor mymaster 172.2.0.2 6379 3

#設置連接master和slave時的密碼,master和slave密碼應該一樣

sentinel auth-pass <master-name> <password>

#設置失效時間,單位毫秒 默認為30s

sentinel down-after-milliseconds <master-name> <milliseconds>

#例如

sentinel down-after-milliseconds mymaster 30000

# sentinel parallel-syncs <master-name> <numslaves>

#這個配置項指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行 同步,這個數字越小,完成failover所需的時間就越長,但是如果這個數字越大,就意味著越 多的slave因為replication而不可用。可以通過將這個值設為 1 來保證每次只有一個slave 處于不能處理命令請求的狀態。

# sentinel failover-timeout <master-name> <milliseconds>

#failover-timeout 可以用在以下這些方面:

# 1. 同一個sentinel對同一個master兩次failover之間的間隔時間。

# 2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。

# 3.當想要取消一個正在進行的failover所需要的時間。

# 4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了。

# sentinel的notification-script和reconfig-script 是用來配置當某一事件發生時所需要執行的腳本,可以通過腳本來通知管理員,例如當系統運行不正常時發郵件通知相關人員。對于腳本的運行結果有以下規則:

#若腳本執行后返回1,那么該腳本稍后將會被再次執行,重復次數目前默認為10

#若腳本執行后返回2,或者比2更高的一個返回值,腳本將不會重復執行。

# 如果腳本在執行過程中由于收到系統中斷信號被終止了,則同返回值為1時的行為相同。

# 一個腳本的最大執行時間為60s,如果超過這個時間,腳本將會被一個SIGKILL信號終止,之后重新執行。

sentinel notification-script <master-name> <script-path>

#當一個master由于failover而發生改變時,這個腳本將會被調用,通知相關的客戶端關于master地址已經發生改變的信息

sentinel client-reconfig-script <master-name> <script-path>

分享到:
標簽:主從 復制 Redis
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定