下载redis镜像
Docker-compose:
networks: redis-cluster-compose: driver: bridge
services: redis-node-1: image: redis:7.0.0 ports: - 7000:7000 - 17000:17000 networks: - redis-cluster-compose hostname: redis-node-1 volumes: - ./7000:/redis command: redis-server /redis/redis.conf redis-node-2: image: redis:7.0.0 ports: - 7001:7001 - 17001:17001 networks: - redis-cluster-compose hostname: redis-node-2 volumes: - ./7001:/redis command: redis-server /redis/redis.conf
redis-node-3: image: redis:7.0.0 ports: - 7002:7002 - 17002:17002 networks: - redis-cluster-compose hostname: redis-node-3 volumes: - ./7002:/redis command: redis-server /redis/redis.conf
redis-node-4: image: redis:7.0.0 ports: - 7003:7003 - 17003:17003 networks: - redis-cluster-compose hostname: redis-node-4 volumes: - ./7003:/redis command: redis-server /redis/redis.conf
redis-node-5: image: redis:7.0.0 ports: - 7004:7004 - 17004:17004 networks: - redis-cluster-compose hostname: redis-node-5 volumes: - ./7004:/redis command: redis-server /redis/redis.conf
redis-node-6: image: redis:7.0.0 ports: - 7005:7005 - 17005:17005 networks: - redis-cluster-compose hostname: redis-node-6 volumes: - ./7005:/redis command: redis-server /redis/redis.conf
redis-cluster-creator: image: redis:7.0.0 ports: - 6999:6999 networks: - redis-cluster-compose depends_on: - redis-node-1 - redis-node-2 - redis-node-3 - redis-node-4 - redis-node-5 - redis-node-6
redis-insight: image: redislabs/redisinsight ports: - 8001:8001 networks: - redis-cluster-compose volumes: - ./redisinsight:/db depends_on: - redis-cluster-creator其中,配置文件./7000是和docker-compose文件在一个文件夹下的7000文件夹
单个redis的配置文件为:
# Redis 端口(必须和 docker-compose 中映射的端口一致)port 7000
# 禁用保护模式(允许外部连接,非生产建议小心使用)protected-mode nonotify-keyspace-events KEA# 后台运行(容器中不建议设置)daemonize no
# 集群相关配置cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000
# 开启 Append Only File 持久化appendonly yes
# 数据目录(必须与 Docker 容器挂载一致)dir /redis
# 日志级别loglevel notice
# 绑定所有地址(容器中建议设置)bind 0.0.0.0
cluster-announce-ip 10.204.72.153cluster-announce-port 7000cluster-announce-bus-port 17000其中,cluster-announce-ip是集群对外的访问IP,如果是单机的话可以写本机ipconfig查出来的IP。
启动命令为:
docker compose -f docker-compose.yml -p redis-cluster up
因为此时还未创建集群,所以在容器外本机内找一个redis-cli命令工具,执行
./redis-cli --cluster create 10.204.72.153:7000 10.204.72.153:7001 10.204.72.153:7002 10.204.72.153:7003 10.204.72.153:7004 10.204.72.153:7005 --cluster-replicas 1
创建集群。大功告成~