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)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。