Docker方式部署redis-cluster
Docker方式部署redis-cluster步骤 1、redis容器初始化 2、redis容器集群配置
一、redis容器初始化 容器初始化,使用docker-compose方式,先创建一个docker-compose.yml文件,内容如下:
version: 3 services: redis1: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8001/data:/data environment: - REDIS_PORT=8001 redis2: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8002/data:/data environment: - REDIS_PORT=8002 redis3: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8003/data:/data environment: - REDIS_PORT=8003 redis4: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8004/data:/data environment: - REDIS_PORT=8004 redis5: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8005/data:/data environment: - REDIS_PORT=8005 redis6: image: publicisworldwide/redis-cluster network_mode: host restart: always volumes: - /data/redis/8006/data:/data environment: - REDIS_PORT=8006
这里引用了别人的一个镜像publicisworldwide/redis-cluster,方便快捷。 这里使用host(主机)网络模式,把redis数据挂载到本机目录/data/redis/800*下。 若不想使用host模式,也可以把network_mode去掉,但就要加ports映射。 redis-cluster的节点端口共分为2种,一种是节点提供服务的端口,如6379;一种是节点间通信的端口,固定格式为:10000+6379。
version: 3
services:
redis1:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8001/data:/data
environment:
- REDIS_PORT=8001
ports:
- 8001:8001 #服务端口
- 18001:18001 #集群端口
redis2:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8002/data:/data
environment:
- REDIS_PORT=8002
ports:
- 8002:8002
- 18002:18002
redis3:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8003/data:/data
environment:
- REDIS_PORT=8003
ports:
- 8003:8003
- 18003:18003
redis4:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8004/data:/data
environment:
- REDIS_PORT=8004
ports:
- 8004:8004
- 18004:18004
redis5:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8005/data:/data
environment:
- REDIS_PORT=8005
ports:
- 8005:8005
- 18005:18005
redis6:
image: publicisworldwide/redis-cluster
restart: always
volumes:
- /data/redis/8006/data:/data
environment:
- REDIS_PORT=8006
ports:
- 8006:8006
- 18006:18006
创建文件后,直接启动服务
窗口模式 docker-compose up 后台进程 docker-compose up -d
查看启动的进程 状态为Up,说明服务均已启动,镜像无问题。 注意:以上镜像不能设置永久密码,其实redis一般是内网访问,可以不需密码。
二、redis容器集群配置 上面只是启动了6个redis容器,并没有设置集群,通过下面的命令可以设置集群。
docker run --rm -it inem0o/redis-trib create --replicas 1 192.168.99.100:8001 192.168.99.100:8002 192.168.99.100:8003 192.168.99.100:8004 192.168.99.100:8005 192.168.99.100:8006
这里同样使用了另一个镜像inem0o/redis-trib,执行时会自动下载。 日志如下: 注意:出现Can I set the above configuration? (type ‘yes’ to accept): 是要输入yes 不是Y 成功后可链接redis,用以下命令
docker exec -it redis-8001 redis-cli -c -h 192.168.99.100 -p 8001
