Docker網(wǎng)絡(luò)之部署redis集群方式
部署redis集群
1.創(chuàng)建網(wǎng)卡
[root@ls-bPtysZTW ~]# docker network create redis --subnet 172.38.0.0/16 75919ea55f07a816244610bd3c1aac298716dbf4d0be80b0b686b600c8165e77
通過腳本構(gòu)建6個(gè)redis配置
for port in $(seq 1 6); \ do \ mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >/mydata/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done
2.依次啟動(dòng)6個(gè)redis容器
docker run -p 6371:6379 -p 16371:16379 --name redis-1 \ -v /mydata/redis/node-1/data:/data \ -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker run -p 6372:6379 -p 16372:16379 --name redis-2 \ -v /mydata/redis/node-2/data:/data \ -v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker run -p 6373:6379 -p 16373:16379 --name redis-3 \ -v /mydata/redis/node-3/data:/data \ -v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker run -p 6374:6379 -p 16374:16379 --name redis-4 \ -v /mydata/redis/node-4/data:/data \ -v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker run -p 6375:6379 -p 16375:16379 --name redis-5 \ -v /mydata/redis/node-5/data:/data \ -v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker run -p 6376:6379 -p 16376:16379 --name redis-6 \ -v /mydata/redis/node-6/data:/data \ -v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf
3.進(jìn)入到任意一個(gè)容器里
#進(jìn)入一個(gè)redis docker exec -it redis-1 /bin/sh #redis是shell命令,沒有bash命令 #創(chuàng)建集群(創(chuàng)建時(shí)提示是否設(shè)置上面的配置,直接輸入yes即可) redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14 :6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
4. 查看集群信息
redis-cli -c #連接集群 cluster info #查看集群信息 cluster nodes #查看集群節(jié)點(diǎn)
集群測(cè)試
測(cè)試
#向集群里寫入數(shù)據(jù) 127.0.0.1:6379> set abc test # 數(shù)據(jù)寫進(jìn)了節(jié)點(diǎn)2 -> Redirected to slot [7638] located at 172.38.0.12:6379 OK 172.38.0.12:6379> get abc "test"
模擬節(jié)點(diǎn)故障
此時(shí)我們模擬故障,停掉一個(gè)節(jié)點(diǎn)(剛剛寫入數(shù)據(jù)的節(jié)點(diǎn))
[root@ls-bPtysZTW ~]# docker stop redis-2 redis-2
#我們?cè)俅卧L問數(shù)據(jù) 172.38.0.12:6379> get abc ^[^H^C /data # redis-cli -c 127.0.0.1:6379> get abc -> Redirected to slot [7638] located at 172.38.0.16:6379 "test" #查看節(jié)點(diǎn)信息 172.38.0.16:6379> cluster nodes d34a69ce4bce097b36c1620f31fbeaa90fe65a76 172.38.0.14:6379@16379 slave 2a76fc512720e761ccdbf36cbd44be0d7af3c928 0 1647851135371 4 connected 727214221642d8b2f226cd9cd1ea52b6e7a1a31f 172.38.0.11:6379@16379 master - 0 1647851135069 1 connected 0-5460 c058281886151ea80c7f9b27d71165f930878117 172.38.0.16:6379@16379 myself,master - 0 1647851135000 7 connected 5461-10922 #從節(jié)點(diǎn)成master節(jié)點(diǎn) 0defb3ab247cc004143f6cf191742577febe8ab6 172.38.0.12:6379@16379 master,fail - 1647850593353 1647850591849 2 connected #節(jié)點(diǎn)2已經(jīng)故障 2a76fc512720e761ccdbf36cbd44be0d7af3c928 172.38.0.13:6379@16379 master - 0 1647851135000 3 connected 10923-16383 5c9b5b2213935195af3b4fa482aa54ea4e4d2323 172.38.0.15:6379@16379 slave 727214221642d8b2f226cd9cd1ea52b6e7a1a31f 0 1647851136374 5 connected
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 基于docker搭建redis集群的方法
- Docker上實(shí)現(xiàn)Redis集群搭建
- docker實(shí)現(xiàn)redis集群搭建的方法步驟
- Docker中部署Redis集群與部署微服務(wù)項(xiàng)目的詳細(xì)過程
- docker-compose啟動(dòng)redis集群的實(shí)現(xiàn)步驟
- Docker中redis集群部署實(shí)戰(zhàn)
- Docker-Compose搭建Redis集群的實(shí)現(xiàn)教程
- Docker-compose搭建Redis集群(Sentinel)的實(shí)現(xiàn)
- 基于docker的redis集群的搭建方式
- Docker搭建redis集群的實(shí)現(xiàn)
相關(guān)文章
Windows環(huán)境GeoServer打包Docker的方法實(shí)現(xiàn)
本文介紹了在Windows環(huán)境下將GeoServer打包為Docker鏡像,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作
這篇文章主要介紹了Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11在docker中的mysql容器內(nèi)執(zhí)行命令與執(zhí)行SQL文件方式
文章介紹了如何通過Docker進(jìn)入MySQL容器執(zhí)行SQL文件,并總結(jié)了MySQL清空表數(shù)據(jù)的三種方法:TRUNCATE、DROP和DELETE,每種方法都有其適用場(chǎng)景和特點(diǎn)2025-01-01docker實(shí)現(xiàn)重新打tag并刪除原tag的鏡像
這篇文章主要介紹了docker實(shí)現(xiàn)重新打tag并刪除原tag的鏡像,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11docker.service啟動(dòng)失敗:Unit not found的原因及解決辦法
這篇文章主要介紹了docker.service啟動(dòng)失?。篣nit not found的原因分析及解決辦法,需要的朋友可以參考下2017-04-04idea?+?Docker?+?阿里鏡像服務(wù)打包部署的過程
本文介紹了如何在IDEA中使用Docker打包鏡像,并將鏡像推送到阿里云鏡像服務(wù),同時(shí),還詳細(xì)說明了如何在ECS服務(wù)器上安裝和配置Docker,并提供了常用的Docker命令和操作技巧,感興趣的朋友一起看看吧2025-02-02win10子系統(tǒng)ubuntu(WSL) 安裝Docker的教程(圖文詳解)
現(xiàn)在 Docker 有專門的 Win10 專業(yè)版系統(tǒng)的安裝包,需要開啟Hyper-V,具體開啟方法文中給大家介紹的很詳細(xì),這篇文章主要介紹了win10子系統(tǒng)ubuntu(WSL) 安裝Docker,需要的朋友可以參考下2019-10-10docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn)(圖文)
Vaultwarden是一個(gè)開源的密碼管理器,它提供了類似于Bitwarden的功能,允許用戶安全地存儲(chǔ)和管理密碼、敏感數(shù)據(jù)和身份信息,本文主要介紹了docker部署Vaultwarden密碼共享管理系統(tǒng)的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10