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