基于docker的redis主從及哨兵配置方式
簡介
5.0.0之前,Redis主從一直使用 SLAVEOF 作為復(fù)制命令,但是從 5.0.0 版本開始,Redis 正式將 SLAVEOF 命令改名成了 REPLICAOF 命令并逐漸廢棄原來的 SLAVEOF 命令。
以下我用docker安裝redis方式比較復(fù)雜(個(gè)人習(xí)慣,如有需要可從我的docker倉庫下載),用官網(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ù)后臺啟動(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ù)后臺啟動(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)行測試
我們停掉主庫
/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è)參考,也希望大家多多支持腳本之家。
- 使用Docker快速搭建Redis主從復(fù)制的完整步驟
- 用docker實(shí)現(xiàn)Redis主從配置的示例代碼
- Docker搭建Redis主從復(fù)制的實(shí)現(xiàn)步驟
- Docker Compose搭建Redis主從復(fù)制環(huán)境的實(shí)現(xiàn)步驟
- docker搭建redis主從哨兵集群的實(shí)現(xiàn)步驟
- 基于Docker搭建Redis主從集群的實(shí)現(xiàn)
- 詳解使用Docker進(jìn)行Redis主從復(fù)制實(shí)踐
- 使用docker搭建redis主從的方法步驟
- 使用Docker搭建Redis主從復(fù)制的集群
- Docker下redis的主從配置教程詳解
- docker-compose啟動(dòng)redis主從的實(shí)現(xiàn)
相關(guān)文章
Docker網(wǎng)絡(luò)之單host網(wǎng)絡(luò)及使用案例
本文重點(diǎn)給大家講解Docker單主機(jī)網(wǎng)絡(luò)的相關(guān)知識及使用案例,重點(diǎn)是使用案例,感興趣的朋友一起看看吧2017-08-08
關(guān)于如何使用docker部署centos系統(tǒng)測試環(huán)境
這篇文章主要介紹了關(guān)于如何使用docker部署centos系統(tǒng)測試環(huán)境,Docker屬于操作系統(tǒng)虛擬化技術(shù),本文圖文講解部署過程,需要的朋友可以參考下2023-03-03
WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式
這篇文章主要介紹了WIN10系統(tǒng)和Docker內(nèi)部容器IP互通方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
詳解Docker私有倉庫Registry的搭建驗(yàn)證
這篇文章主要介紹了詳解Docker私有倉庫Registry的搭建驗(yàn)證,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
docker+gitlab+jenkins從零搭建自動(dòng)化部署
通過幾天的學(xué)習(xí)和自己的理解,整理了下Docker+Jenkins的自動(dòng)部署教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Docker + Nginx + Logrotate 日志管理與輪換實(shí)
本文主要介紹了Docker + Nginx + Logrotate 日志管理與輪換實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-05-05
Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟
這篇文章主要介紹了Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
兩種方式創(chuàng)建docker鏡像的啟動(dòng)容器時(shí)區(qū)別介紹(總結(jié)篇)
這篇文章主要介紹了基于兩種創(chuàng)建docker鏡像的啟動(dòng)容器時(shí)區(qū)別總結(jié),第一種凡是用docker commit生成的鏡像啟動(dòng)的時(shí)候可以加載一個(gè)啟動(dòng)自己應(yīng)用的腳本,第二種用Docfile文件生成的鏡像時(shí),來啟動(dòng)容器就不用再加這個(gè)腳本了,具體詳情一起通過本文學(xué)習(xí)吧2016-10-10

