溫馨提示×

dockercompose redis怎樣實現(xiàn)集群部署

小樊
81
2024-11-13 17:20:26
欄目: 云計算

在Docker Compose中實現(xiàn)Redis集群部署,你可以使用官方的redis鏡像,并通過配置多個服務(wù)來實現(xiàn)。以下是一個示例的docker-compose.yml文件,展示了如何設(shè)置一個Redis集群:

version: '3.8'

services:
  redis-master:
    image: redis:latest
    container_name: redis-master
    ports:
      - "6379:6379"
    environment:
      - REDIS_CLUSTER_PORT=7000
      - REDIS_CLUSTER_NODE_NAME=master
      - REDIS_CLUSTER_AUTH=no
      - REDIS_CLUSTER_SLAVEOF=redis-slave:6380
    networks:
      - redis-network

  redis-slave:
    image: redis:latest
    container_name: redis-slave
    ports:
      - "6380:6379"
    environment:
      - REDIS_CLUSTER_PORT=7001
      - REDIS_CLUSTER_NODE_NAME=slave
      - REDIS_CLUSTER_AUTH=no
      - REDIS_CLUSTER_SLAVEOF=redis-master:6379
    networks:
      - redis-network

  redis-node3:
    image: redis:latest
    container_name: redis-node3
    ports:
      - "7002:6379"
    environment:
      - REDIS_CLUSTER_PORT=7002
      - REDIS_CLUSTER_NODE_NAME=node3
      - REDIS_CLUSTER_AUTH=no
      - REDIS_CLUSTER_SLAVEOF=redis-master:6379
    networks:
      - redis-network

  redis-node4:
    image: redis:latest
    container_name: redis-node4
    ports:
      - "7003:6379"
    environment:
      - REDIS_CLUSTER_PORT=7003
      - REDIS_CLUSTER_NODE_NAME=node4
      - REDIS_CLUSTER_AUTH=no
      - REDIS_CLUSTER_SLAVEOF=redis-master:6379
    networks:
      - redis-network

  redis-node5:
    image: redis:latest
    container_name: redis-node5
    ports:
      - "7004:6379"
    environment:
      - REDIS_CLUSTER_PORT=7004
      - REDIS_CLUSTER_NODE_NAME=node5
      - REDIS_CLUSTER_AUTH=no
      - REDIS_CLUSTER_SLAVEOF=redis-master:6379
    networks:
      - redis-network

networks:
  redis-network:

解釋

  1. 鏡像:使用redis:latest作為基礎(chǔ)鏡像。
  2. 端口映射:將主機的端口映射到容器的端口。
  3. 環(huán)境變量
    • REDIS_CLUSTER_PORT:Redis集群的端口。
    • REDIS_CLUSTER_NODE_NAME:節(jié)點的名稱。
    • REDIS_CLUSTER_AUTH:是否啟用認證(設(shè)置為no表示不啟用)。
    • REDIS_CLUSTER_SLAVEOF:指定主節(jié)點的地址和端口,用于設(shè)置從節(jié)點。
  4. 網(wǎng)絡(luò):所有服務(wù)連接到同一個網(wǎng)絡(luò)redis-network,以便它們可以相互通信。

啟動集群

  1. 保存docker-compose.yml文件。
  2. 在包含該文件的目錄中運行以下命令啟動集群:
    docker-compose up -d
    

驗證集群

你可以使用redis-cli來驗證集群是否正確啟動:

docker exec -it redis-master redis-cli -c cluster nodes

這將顯示集群中的所有節(jié)點及其狀態(tài)。

注意事項

  • 確保所有節(jié)點的端口映射正確。
  • 如果需要啟用認證,可以在環(huán)境變量中設(shè)置REDIS_CLUSTER_AUTH為相應(yīng)的密碼。
  • 根據(jù)需要調(diào)整節(jié)點數(shù)量和端口映射。

0