docker-compose啟動redis多機(jī)集群的實現(xiàn)(6臺服務(wù)器3主3從)
1. 環(huán)境說明
| 節(jié)點 | 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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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'
持久化存儲
因為容器中執(zhí)行初始化的不是root用戶,自動創(chuàng)建掛載文件權(quán)限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應(yīng)宿主機(jī)ID是1001的用戶,因此提前給了權(quán)限(當(dāng)然你也可以直接給777權(quán)限,但不建議)。
如果你不是這個用戶,可以先給777權(quán)限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回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
啟動
[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啟動redis偽集群》初始化部分。
4. 測試
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>
說明:
進(jìn)入10.10.239.31的redis容器,從該節(jié)點進(jìn)入集群,寫入數(shù)據(jù)。
顯示寫入在 10.10.239.35 這個節(jié)點
同時我們的連接也跳到了這個節(jié)點。
我們讀一下,讀到了數(shù)據(jù)。
換一個節(jié)點連接,效果相同。
可參考另一篇文檔《docker-compose啟動redis偽集群》測試部分。
到此這篇關(guān)于docker-compose啟動redis多機(jī)集群的實現(xiàn)(6臺服務(wù)器3主3從)的文章就介紹到這了,更多相關(guān)docker-compose redis多機(jī)集群內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
數(shù)據(jù)卷(Data Volumes)及dockefile詳解
在生產(chǎn)環(huán)境中使用Docker,往往需要對數(shù)據(jù)進(jìn)行持久化,或者需要在多個容器之間進(jìn)行數(shù)據(jù)共享,這必然涉及容器的數(shù)據(jù)管理操作,今天給大家介紹下數(shù)據(jù)卷(Data Volumes)及dockefile的相關(guān)知識,感興趣的朋友一起看看吧2023-01-01
Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫超詳細(xì)攻略
Docker倉庫是集中存放鏡像的地方,分為公共倉庫和私有倉庫,這篇文章主要給大家介紹了關(guān)于Docker自定義JDK鏡像并拉取至阿里云鏡像倉庫的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-08-08
利用寶塔面板和docker快速部署網(wǎng)站的基本流程
當(dāng)你有了一臺服務(wù)器,就會折騰往這臺服務(wù)器上部署各種好玩的網(wǎng)站,本文將以部署filebrowser舉例介紹網(wǎng)站部署的基本流程,感興趣的朋友一起看看吧2023-12-12
使用docker部署django技術(shù)棧項目的方法步驟
這篇文章主要介紹了使用docker部署django技術(shù)棧項目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Docker + Nodejs + Kafka + Redis + MySQL搭建簡單秒殺環(huán)境
本文給大家分享的是使用Docker + Nodejs + Kafka + Redis + MySQL模擬搭建起來的商品秒殺環(huán)境,非常的實用和熱門,有需要的小伙伴可以參考下2017-01-01
docker 啟動elasticsearch鏡像,掛載目錄后報錯的解決
這篇文章主要介紹了docker 啟動 elasticsearch鏡像,掛載目錄后報錯的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
使用Docker部署MySQL 5.7&8.0主從集群的方法步驟
這篇文章主要介紹了使用Docker部署MySQL 5.7&8.0主從集群的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

