基于docker的redis主從及哨兵配置方式
簡介
5.0.0之前,Redis主從一直使用 SLAVEOF 作為復(fù)制命令,但是從 5.0.0 版本開始,Redis 正式將 SLAVEOF 命令改名成了 REPLICAOF 命令并逐漸廢棄原來的 SLAVEOF 命令。
以下我用docker安裝redis方式比較復(fù)雜(個人習(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、啟動容器master和slave
dvr start redis
啟動如下:
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ù)后臺啟動 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ù)后臺啟動 281 slaveof 172.18.62.27 6379 #主從配置 288 masterauth foobared #主從配置密碼認(rèn)證(若主無密碼,無需置) 500 requirepass foobared #開啟密碼認(rèn)證(可選)
5、啟動主庫和從庫的服務(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哨兵配置
此處以三哨兵為例,哨兵個數(shù)為奇數(shù)個,不然選主將無法進(jìn)行,三個哨兵我放在salve上,也可單獨(dú)準(zhǔn)備三個容器運(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、啟動哨兵
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):
啟動主庫:
/etc/init.d/redis-server start
主庫狀態(tài):
從上圖看出:主庫停掉,從庫自動切換為主庫;主庫恢復(fù),主庫變?yōu)樵瓘膸斓膹摹?/p>
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker容器Container鏡像Image如何存儲詳解
本文主要介紹Docker容器(Container)和鏡像(Image)是如何進(jìn)行數(shù)據(jù)存儲詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-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代理對象
這篇文章主要為大家介紹了dubbo服務(wù)引用創(chuàng)建Invoker代理對象示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08修改Docker鏡像倉庫為阿里云鏡像或163鏡像的實(shí)現(xiàn)
docker本身的倉庫非常慢,但是國內(nèi)有阿里云的鏡像倉庫非???本文主要介紹了修改Docker鏡像倉庫為阿里云鏡像或163鏡像的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11對docker中的overlay式網(wǎng)絡(luò)詳解
這篇文章主要介紹了對docker中的overlay式網(wǎng)絡(luò)詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11一文教你如何通過 Docker 快速搭建各種測試環(huán)境
這篇文章主要介紹了一文教你如何通過 Docker 快速搭建各種測試環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07docker overlay實(shí)現(xiàn)跨主機(jī)的容器互通的方法
這篇文章主要介紹了docker overlay實(shí)現(xiàn)跨主機(jī)的容器互通,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11