何亦冷

导航

Redis单机和集群搭建

Redis单机

services:
  redis:
    image: redis:8
    container_name: redis8-6379
    command: redis-server --requirepass "hepengju"
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai

Redis单机-ssl

services:
  redis:
    image: redis:8
    container_name: redis8-6380-ssl
    command: redis-server --requirepass "hepengju" --port 0 --tls-port 6380 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
# 生成自签名证书
openssl genrsa 2048 > redis.key
openssl req -new -key redis.key -out redis.csr
openssl x509 -req -in redis.csr -signkey redis.key -days 3650 -out redis.crt

# 查看证书内容
openssl x509 -in redis.crt -noout -text

Redis集群

services:
  redis8-7001:
    image: redis:8
    container_name: redis8-7001
    command: redis-server --cluster-enabled yes --port 7001 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
  redis8-7002:
    image: redis:8
    container_name: redis8-7002
    command: redis-server --cluster-enabled yes --port 7002 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
  redis8-7003:
    image: redis:8
    container_name: redis8-7003
    command: redis-server --cluster-enabled yes --port 7003 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
  redis8-7004:
    image: redis:8
    container_name: redis8-7004
    command: redis-server --cluster-enabled yes --port 7004 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
  redis8-7005:
    image: redis:8
    container_name: redis8-7005
    command: redis-server --cluster-enabled yes --port 7005 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
  redis8-7006:
    image: redis:8
    container_name: redis8-7006
    command: redis-server --cluster-enabled yes --port 7006 --cluster-announce-ip 192.168.1.111 --requirepass hepengju --masterauth hepengju
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
# 进入容器内部
docker exec -it redis8-7001 bash

# 执行创建集群命令
redis-cli --cluster create 192.168.1.111:7001 192.168.1.111:7002 192.168.1.111:7003 192.168.1.111:7004 192.168.1.111:7005 192.168.1.111:7006  --cluster-replicas 1 --pass hepengju

# 验证集群
redis-cli -p 7001 -c --pass hepengju
cluster nodes

Redis集群-ssl

services:
  redis8-8001:
    image: redis:8
    container_name: redis8-8001-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8001 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
  redis8-8002:
    image: redis:8
    container_name: redis8-8002-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8002 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
  redis8-8003:
    image: redis:8
    container_name: redis8-8003-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8003 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
  redis8-8004:
    image: redis:8
    container_name: redis8-8004-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8004 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
  redis8-8005:
    image: redis:8
    container_name: redis8-8005-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8005 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
  redis8-8006:
    image: redis:8
    container_name: redis8-8006-ssl
    command: redis-server --requirepass "hepengju" --cluster-enabled yes --cluster-announce-ip 192.168.1.111 --masterauth hepengju --port 0 --tls-port 8006 --tls-cert-file /etc/redis/redis.crt --tls-key-file /etc/redis/redis.key --tls-ca-cert-file /etc/redis/redis.crt --tls-replication yes --tls-cluster yes
    restart: always
    network_mode: "host"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - ../redis.crt:/etc/redis/redis.crt
      - ../redis.key:/etc/redis/redis.key
# 进入容器内部
docker exec -it redis8-8001-ssl bash

# 执行创建集群命令
redis-cli --cluster create 192.168.1.111:8001 192.168.1.111:8002 192.168.1.111:8003 192.168.1.111:8004 192.168.1.111:8005 192.168.1.111:8006  --cluster-replicas 1 --pass hepengju --tls --cert /etc/redis/redis.crt --key /etc/redis/redis.key --cacert /etc/redis/redis.crt

# 验证集群
redis-cli -p 8001 -c --pass hepengju --tls --cert /etc/redis/redis.crt --key /etc/redis/redis.key --cacert /etc/redis/redis.crt
cluster nodes

posted on 2025-11-01 22:56  何亦冷  阅读(4)  评论(0)    收藏  举报