【安装部署】使用 Docker-Compose 方式部署 Redis


Administrator
飞致云 发布于 2022-05-26 / 848 阅读 / 0 评论 /
需要在服务器上提前安装 Docker 与 Docker-Compose此处在一台服务器上以 Docker-Compose 方式部署了 6 个 Redis 节点,组建 3 主 3 从的 Redis Cluster 集群。1 准备相关环境及文件1.1 创建 Redis 文件目录mkdir /opt/re

需要在服务器上提前安装 Docker 与 Docker-Compose
此处在一台服务器上以 Docker-Compose 方式部署了 6 个 Redis 节点,组建 3 主 3 从的 Redis Cluster 集群。

1 准备相关环境及文件

1.1 创建 Redis 文件目录

mkdir /opt/redis

准备 Redis 配置文件 redis.conf,放置于 /opt/redis 目录下,内容如下:

示例设置密码为 admin123456。

port 6379
daemonize no
protected-mode no
maxmemory-policy allkeys-lru
requirepass admin123456
masterauth admin123456
cluster-enabled yes
cluster-config-file nodes-c.conf

准备 docker-compose 运行时所需的 docker-compose.yml 文件,放置于 /opt/redis 目录下,内容如下:

version: '3'

services:
node1:
image: redis:6.2.6-alpine3.15
container_name: redis-node1
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node1:/usr/local/etc/redis
- /opt/redis/node1:/data
- /opt/redis/node1:/log
network_mode: "host"

node2:
image: redis:6.2.6-alpine3.15
container_name: redis-node2
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node2:/usr/local/etc/redis
- /opt/redis/node2:/data
- /opt/redis/node2:/log
network_mode: "host"

node3:
image: redis:6.2.6-alpine3.15
container_name: redis-node3
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node3:/usr/local/etc/redis
- /opt/redis/node3:/data
- /opt/redis/node3:/log
network_mode: "host"

node4:
image: redis:6.2.6-alpine3.15
container_name: redis-node4
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node4:/usr/local/etc/redis
- /opt/redis/node4:/data
- /opt/redis/node4:/log
network_mode: "host"

node5:
image: redis:6.2.6-alpine3.15
container_name: redis-node5
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node5:/usr/local/etc/redis
- /opt/redis/node5:/data
- /opt/redis/node5:/log
network_mode: "host"

node6:
image: redis:6.2.6-alpine3.15
container_name: redis-node6
command: /bin/sh -c "redis-server /usr/local/etc/redis/redis.conf"
volumes:
- /opt/redis/node6:/usr/local/etc/redis
- /opt/redis/node6:/data
- /opt/redis/node6:/log
network_mode: "host"

1.2 创建 Redis 节点目录及配置文件

cd /opt/redis
mkdir node{1..6}
for i in {1..6};do \cp redis.conf node$i;done
# 修改各个 node 目录下的 redis.conf,将 port 依次改为 6379 6380 6381 6382 6383 6384

2 启动 Redis Cluster

docker-compose up -d

3 配置集群

服务启动后,登录其中任意一个节点,进行主从集群的配置:

docker exec -it redis-node1 sh

# 将 6 个节点设置为 3 主 3 从模式
redis-cli -a admin123456 --cluster create 10.1.11.197:6379 10.1.11.197:6380 10.1.11.197:6381 10.1.11.197:6382 10.1.11.197:6383 10.1.11.197:6384 --cluster-replicas 1

4 验证集群

登录到任意一个 Redis 节点上:

docker exec -it redis-node1 sh

# 查看集群节点,可以看到 3 主 3 从的节点信息
redis-cli -a admin123456 -c cluster nodes

# 如果存在防火墙问题,可以将 Redis 的端口打开
firewall-cmd --add-port=6379-6384/tcp --zone=public --permanent
firewall-cmd --reload


是否对你有帮助?