docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)
1. 環(huán)境說(shuō)明
節(jié)點(diǎn) | IP |
---|---|
redis-node-1 | 10.10.239.31 |
redis-node-2 | 10.10.239.32 |
redis-node-3 | 10.10.239.33 |
redis-node-4 | 10.10.239.34 |
redis-node-5 | 10.10.239.35 |
redis-node-6 | 10.10.239.36 |
2. 集群部署
redis-node-1
yml 文件
version: '2.2' services: redis-node-1: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-1 network_mode: "host" volumes: - ./redis-cluster_data-1:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-01 redis-cluster]# mkdir ./redis-cluster_data-1 [root@liubei-01 redis-cluster]# chown 1001 ./redis-cluster_data-1
啟動(dòng)
[root@liubei-01 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-01 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-1 /opt/bitnami/scripts/redis ... Up
redis-node-2
version: '2.2' services: redis-node-2: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-2 network_mode: "host" volumes: - ./redis-cluster_data-2:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-02 redis-cluster]# mkdir ./redis-cluster_data-2 [root@liubei-02 redis-cluster]# chown 1001 ./redis-cluster_data-2
啟動(dòng)
[root@liubei-02 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-02 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-2 /opt/bitnami/scripts/redis ... Up
redis-node-3
version: '2.2'
services: redis-node-3: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-3 network_mode: "host" volumes: - ./redis-cluster_data-3:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-03 redis-cluster]# mkdir ./redis-cluster_data-3 [root@liubei-03 redis-cluster]# chown 1001 ./redis-cluster_data-3
啟動(dòng)
[root@liubei-03 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-03 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-3 /opt/bitnami/scripts/redis ... Up
redis-node-4
version: '2.2' services: redis-node-2: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-4 network_mode: "host" volumes: - ./redis-cluster_data-4:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-04 redis-cluster]# mkdir ./redis-cluster_data-4 [root@liubei-04 redis-cluster]# chown 1001 ./redis-cluster_data-4
啟動(dòng)
[root@liubei-04 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-04 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-4 /opt/bitnami/scripts/redis ... Up
redis-node-5
version: '2.2'
services: redis-node-5: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-5 network_mode: "host" volumes: - ./redis-cluster_data-5:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-05 redis-cluster]# mkdir ./redis-cluster_data-5 [root@liubei-05 redis-cluster]# chown 1001 ./redis-cluster_data-5
啟動(dòng)
[root@liubei-05 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-05 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-5 /opt/bitnami/scripts/redis ... Up
redis-node-6
version: '2.2'
services: redis-node-6: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-6 network_mode: "host" volumes: - ./redis-cluster_data-6:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.239.32 10.10.239.33 10.10.239.34 10.10.239.35 10.10.239.36'
持久化存儲(chǔ)
因?yàn)槿萜髦袌?zhí)行初始化的不是root用戶,自動(dòng)創(chuàng)建掛載文件權(quán)限一般會(huì)有問(wèn)題。我這里容器中執(zhí)行初始化的用戶對(duì)應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個(gè)用戶,可以先給777權(quán)限。等容器啟動(dòng)后看初始化后的文件屬主是誰(shuí),就把該目錄的屬主改成誰(shuí),然后改回755或750權(quán)限。
[root@liubei-06 redis-cluster]# mkdir ./redis-cluster_data-6 [root@liubei-06 redis-cluster]# chown 1001 ./redis-cluster_data-6
啟動(dòng)
[root@liubei-06 redis-cluster]# docker-compose up -d
查看結(jié)果
[root@liubei-06 redis-cluster]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
redis-node-6 /opt/bitnami/scripts/redis ... Up
3. 初始化
redis-cli -h 10.10.239.31 -a liubei@161 --cluster create 10.10.239.31:6379 10.10.239.32:6379 10.10.239.33:6379 10.10.239.34:6379 10.10.239.35:6379 10.10.239.36:6379 --cluster-replicas 1
輸出結(jié)果和狀態(tài)查看參考另一篇文檔《docker-compose啟動(dòng)redis偽集群》初始化部分。
4. 測(cè)試
I have no name!@0fc49662e765:/$ redis-cli -h 10.10.239.31 -a liubei@161 -c Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.10.239.31:6379> set name liubei -> Redirected to slot [5798] located at 10.10.239.35:6379 OK 10.10.239.35:6379> get name "liubei" 10.10.239.35:6379>
說(shuō)明:
進(jìn)入10.10.239.31的redis容器,從該節(jié)點(diǎn)進(jìn)入集群,寫入數(shù)據(jù)。
顯示寫入在 10.10.239.35 這個(gè)節(jié)點(diǎn)
同時(shí)我們的連接也跳到了這個(gè)節(jié)點(diǎn)。
我們讀一下,讀到了數(shù)據(jù)。
換一個(gè)節(jié)點(diǎn)連接,效果相同。
可參考另一篇文檔《docker-compose啟動(dòng)redis偽集群》測(cè)試部分。
到此這篇關(guān)于docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)的文章就介紹到這了,更多相關(guān)docker-compose redis多機(jī)集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mac上將brew安裝的MySql改用Docker執(zhí)行操作過(guò)程
本文分步驟給大家介紹Mac上將brew安裝的MySql改用Docker執(zhí)行操作過(guò)程的知識(shí),本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-11-11docker 容器添加指定網(wǎng)絡(luò)地址的方法實(shí)現(xiàn)
Docker容器運(yùn)行的時(shí)候默認(rèn)會(huì)自動(dòng)分配一個(gè)默認(rèn)網(wǎng)橋所在網(wǎng)段的IP地址,本文主要介紹了docker容器添加指定網(wǎng)絡(luò)地址的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01docker-compose.yaml設(shè)置中國(guó)時(shí)區(qū)方式
這篇文章主要介紹了docker-compose.yaml設(shè)置中國(guó)時(shí)區(qū)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11docker run起來(lái)之后執(zhí)行多條命令
docker run :創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令。這篇文章主要介紹了docker run起來(lái)之后執(zhí)行多條命令 ,需要的朋友可以參考下2017-11-11CentOS7部署19版docker(簡(jiǎn)單,可跟做)
這篇文章主要介紹了CentOS7部署19版docker,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01分享Ubuntu19無(wú)法安裝docker源問(wèn)題
這篇文章主要介紹了Ubuntu19無(wú)法安裝docker源問(wèn)題,本文通過(guò)實(shí)例代碼給大家講解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11