基于docker的redis主從及哨兵配置方式
簡(jiǎn)介
5.0.0之前,Redis主從一直使用 SLAVEOF 作為復(fù)制命令,但是從 5.0.0 版本開始,Redis 正式將 SLAVEOF 命令改名成了 REPLICAOF 命令并逐漸廢棄原來的 SLAVEOF 命令。
以下我用docker安裝redis方式比較復(fù)雜(個(gè)人習(xí)慣,如有需要可從我的docker倉(cāng)庫下載),用官網(wǎng)的鏡像安裝即可,配置直接從第四步開始。
通過官方鏡像安裝:
docker pull redis docker run -itd --name redis-master redis bash docker run -itd --name redis-slave redis bash
安裝完配置文件需要下載,完成直接從第四步開始即可。
1、下載鏡像

2、啟動(dòng)容器master和slave
dvr start redis
啟動(dòng)如下:

3、進(jìn)入容器,進(jìn)行redis安裝
docker exec -it redis_master_1 bash docker exec -it redis_slave_1 bash
apt update apt upgrade apt install redis -y
4、配置主從
master修改:
vim /etc/redis/redis.conf
56 # bind 127.0.0.1 ::1 #注釋此行,否則只能本機(jī)訪問 88 protected-mode no #關(guān)閉保護(hù)模式 136 daemonize yes #服務(wù)后臺(tái)啟動(dòng) 500 requirepass foobared #開啟密碼認(rèn)證(可選,若此無設(shè)置,從庫亦無須認(rèn)證)
slave修改:
vim /etc/redis/redis.conf
56 # bind 127.0.0.1 ::1 #注釋此行,否則只能本機(jī)訪問 88 protected-mode no #關(guān)閉保護(hù)模式 136 daemonize yes #服務(wù)后臺(tái)啟動(dòng) 281 slaveof 172.18.62.27 6379 #主從配置 288 masterauth foobared #主從配置密碼認(rèn)證(若主無密碼,無需置) 500 requirepass foobared #開啟密碼認(rèn)證(可選)
5、啟動(dòng)主庫和從庫的服務(wù)
/etc/init.d/redis-server start


6、主從驗(yàn)證
登錄:
redis-cli -a foobared
查看狀態(tài):
INFO replication
master:

slave:

數(shù)據(jù)驗(yàn)證:


到此,redis主從配置完成
7、redis哨兵配置
此處以三哨兵為例,哨兵個(gè)數(shù)為奇數(shù)個(gè),不然選主將無法進(jìn)行,三個(gè)哨兵我放在salve上,也可單獨(dú)準(zhǔn)備三個(gè)容器運(yùn)行哨兵服務(wù)
哨兵配置如下:
哨兵1:
vim /etc/redis/sentinel1.conf
protected-mode no #關(guān)閉保護(hù)模式 port 26379 #運(yùn)行端口 daemonize yes pidfile /var/run/redis-sentinel1.pid logfile "/var/log/redis/sentinel1_log" sentinel monitor mymaster 172.18.62.27 6379 2 #配置master地址,及需要哨兵票數(shù) sentinel auth-pass mymaster foobared #密碼認(rèn)證(若主從都為設(shè)密碼,不用此配置) sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1
哨兵2
vim /etc/redis/sentinel2.conf
protected-mode no #關(guān)閉保護(hù)模式 port 26378 #運(yùn)行端口 daemonize yes pidfile /var/run/redis-sentinel2.pid logfile "/var/log/redis/sentinel2_log" sentinel monitor mymaster 172.18.62.27 6379 2 #配置master地址,及需要哨兵票數(shù) sentinel auth-pass mymaster foobared #密碼認(rèn)證(若主從都為設(shè)密碼,不用此配置) sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster
哨兵3
vim /etc/redis/sentinel3.conf
protected-mode no #關(guān)閉保護(hù)模式 port 26377 #運(yùn)行端口 daemonize yes pidfile /var/run/redis-sentinel3.pid logfile "/var/log/redis/sentinel3_log" sentinel monitor mymaster 172.18.62.27 6379 2 #配置master地址,及需要哨兵票數(shù) sentinel auth-pass mymaster foobared #密碼認(rèn)證(若主從都為設(shè)密碼,不用此配置) sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster
8、啟動(dòng)哨兵
redis-server sentinel1.conf --sentinel redis-server sentinel2.conf --sentinel redis-server sentinel3.conf --sentinel
如下:

9、進(jìn)行測(cè)試
我們停掉主庫
/etc/init.d/redis-server stop

查看從庫狀態(tài):

啟動(dòng)主庫:
/etc/init.d/redis-server start
主庫狀態(tài):

從上圖看出:主庫停掉,從庫自動(dòng)切換為主庫;主庫恢復(fù),主庫變?yōu)樵瓘膸斓膹摹?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在docker-compose.yml文件中配置容器的環(huán)境變量方式
本文介紹了在docker-compose.yml文件中設(shè)置和使用環(huán)境變量的方法,包括直接設(shè)置環(huán)境變量、從文件讀取環(huán)境變量以及使用多個(gè)環(huán)境文件進(jìn)行不同部署環(huán)境的配置2024-11-11
如何將Docker的構(gòu)建時(shí)間減少40%(推薦)
這篇文章主要介紹了如何將Docker的構(gòu)建時(shí)間減少40%,本文描述了我們?cè)趦?yōu)化CI管道后獲得的一些新見解,需要的朋友可以參考下2023-11-11
Linux環(huán)境docker部署Firefox結(jié)合內(nèi)網(wǎng)穿透遠(yuǎn)程使用瀏覽器測(cè)試的示例詳解
在Docker中打開Firefox意味著我們將在一個(gè)Docker容器中運(yùn)行Firefox瀏覽器,這對(duì)于一些特殊的測(cè)試場(chǎng)景非常有用,例如需要在不同版本的瀏覽器中進(jìn)行測(cè)試,下面是一個(gè)簡(jiǎn)單的示例,演示如何在Docker中打開Firefox,感興趣的朋友跟隨小編一起看看吧2024-08-08
Docker在WSL環(huán)境下啟動(dòng)失敗的問題解決辦法
在Windows系統(tǒng)上,有時(shí)候我們可能會(huì)遇到Docker啟動(dòng)失敗的問題,特別是在使用WSL(Windows Subsystem for Linux)作為Docker運(yùn)行環(huán)境時(shí),這篇文章主要介紹了Docker在WSL環(huán)境下啟動(dòng)失敗問題的解決辦法,需要的朋友可以參考下2025-07-07
Docker安裝部署rocketmq-console工具教程
這篇文章主要介紹了Docker安裝部署rocketmq-console工具教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
Navicat 連接服務(wù)器端中的docker數(shù)據(jù)庫的方法
這篇文章主要介紹了Navicat 連接服務(wù)器端中的docker數(shù)據(jù)庫,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
詳解Docker掛載本地目錄及實(shí)現(xiàn)文件共享的方法
本篇文章主要介紹了詳解Docker掛載本地目錄及實(shí)現(xiàn)文件共享的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12

