基于docker的redis主從及哨兵配置方式
簡(jiǎn)介
5.0.0之前,Redis主從一直使用 SLAVEOF 作為復(fù)制命令,但是從 5.0.0 版本開(kāi)始,Redis 正式將 SLAVEOF 命令改名成了 REPLICAOF 命令并逐漸廢棄原來(lái)的 SLAVEOF 命令。
以下我用docker安裝redis方式比較復(fù)雜(個(gè)人習(xí)慣,如有需要可從我的docker倉(cāng)庫(kù)下載),用官網(wǎng)的鏡像安裝即可,配置直接從第四步開(kāi)始。
通過(guò)官方鏡像安裝:
docker pull redis docker run -itd --name redis-master redis bash docker run -itd --name redis-slave redis bash
安裝完配置文件需要下載,完成直接從第四步開(kāi)始即可。
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ī)訪問(wèn) 88 protected-mode no #關(guān)閉保護(hù)模式 136 daemonize yes #服務(wù)后臺(tái)啟動(dòng) 500 requirepass foobared #開(kāi)啟密碼認(rèn)證(可選,若此無(wú)設(shè)置,從庫(kù)亦無(wú)須認(rèn)證)
slave修改:
vim /etc/redis/redis.conf
56 # bind 127.0.0.1 ::1 #注釋此行,否則只能本機(jī)訪問(wèn) 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)證(若主無(wú)密碼,無(wú)需置) 500 requirepass foobared #開(kāi)啟密碼認(rèn)證(可選)
5、啟動(dòng)主庫(kù)和從庫(kù)的服務(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è),不然選主將無(wú)法進(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è)試
我們停掉主庫(kù)
/etc/init.d/redis-server stop
查看從庫(kù)狀態(tài):
啟動(dòng)主庫(kù):
/etc/init.d/redis-server start
主庫(kù)狀態(tài):
從上圖看出:主庫(kù)停掉,從庫(kù)自動(dòng)切換為主庫(kù);主庫(kù)恢復(fù),主庫(kù)變?yōu)樵瓘膸?kù)的從。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker容器Container鏡像Image如何存儲(chǔ)詳解
本文主要介紹Docker容器(Container)和鏡像(Image)是如何進(jìn)行數(shù)據(jù)存儲(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Docker安裝Presto連接Hive的詳細(xì)過(guò)程
這篇文章主要介紹了Docker安裝Presto連接Hive的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Docker部署Memos服務(wù)的實(shí)現(xiàn)
本文將介紹如何使用Docker部署Memos服務(wù),首先,我們將構(gòu)建Memos服務(wù)的Docker鏡像,然后將在Docker容器中運(yùn)行Memos服務(wù),感興趣的可以了解一下2023-12-12dubbo服務(wù)引用創(chuàng)建Invoker代理對(duì)象
這篇文章主要為大家介紹了dubbo服務(wù)引用創(chuàng)建Invoker代理對(duì)象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn)
docker本身的倉(cāng)庫(kù)非常慢,但是國(guó)內(nèi)有阿里云的鏡像倉(cāng)庫(kù)非???本文主要介紹了修改Docker鏡像倉(cāng)庫(kù)為阿里云鏡像或163鏡像的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11對(duì)docker中的overlay式網(wǎng)絡(luò)詳解
這篇文章主要介紹了對(duì)docker中的overlay式網(wǎng)絡(luò)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境
這篇文章主要介紹了一文教你如何通過(guò) Docker 快速搭建各種測(cè)試環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07docker overlay實(shí)現(xiàn)跨主機(jī)的容器互通的方法
這篇文章主要介紹了docker overlay實(shí)現(xiàn)跨主機(jī)的容器互通,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11