docker-compose啟動redis多機集群的實現(xiàn)(6臺服務器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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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)建掛載文件權限一般會有問題。我這里容器中執(zhí)行初始化的用戶對應宿主機ID是1001的用戶,因此提前給了權限(當然你也可以直接給777權限,但不建議)。
如果你不是這個用戶,可以先給777權限。等容器啟動后看初始化后的文件屬主是誰,就把該目錄的屬主改成誰,然后改回755或750權限。
[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
查看結果
[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
輸出結果和狀態(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>
說明:
進入10.10.239.31的redis容器,從該節(jié)點進入集群,寫入數(shù)據(jù)。
顯示寫入在 10.10.239.35 這個節(jié)點
同時我們的連接也跳到了這個節(jié)點。
我們讀一下,讀到了數(shù)據(jù)。
換一個節(jié)點連接,效果相同。
可參考另一篇文檔《docker-compose啟動redis偽集群》測試部分。
到此這篇關于docker-compose啟動redis多機集群的實現(xiàn)(6臺服務器3主3從)的文章就介紹到這了,更多相關docker-compose redis多機集群內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程
本文分步驟給大家介紹Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程的知識,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧2016-11-11docker 容器添加指定網(wǎng)絡地址的方法實現(xiàn)
Docker容器運行的時候默認會自動分配一個默認網(wǎng)橋所在網(wǎng)段的IP地址,本文主要介紹了docker容器添加指定網(wǎng)絡地址的方法實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01docker-compose.yaml設置中國時區(qū)方式
這篇文章主要介紹了docker-compose.yaml設置中國時區(qū)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11