docker-compose配置redis集群-支持arm
创建文件夹
在 /usr/local/docker/下创建,方便管理
mkdir redis-cluster
# 创建redis-1~redis-6文件夹
mkdir redis-cluster/redis-1 \ redis-cluster/redis-2 \ redis-cluster/redis-3 \ redis-cluster/redis-4 \ redis-cluster/redis-5 \ redis-cluster/redis-6
新建配置文件
cd redis-cluster
cat > redis-1/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6381 masterauth 123456 requirepass 123456 EOF cat > redis-2/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6382 masterauth 123456 requirepass 123456 EOF cat > redis-3/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6383 masterauth 123456 requirepass 123456 EOF cat > redis-4/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6384 masterauth 123456 requirepass 123456 EOF cat > redis-5/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6385 masterauth 123456 requirepass 123456 EOF cat > redis-6/redis.conf << EOF protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes port 6386 masterauth 123456 requirepass 123456 EOF
docker-compose.yaml文件配置 (复制有问题可以用 cat > docker-compose.yaml << EOF)
cd redis-cluster
cat > docker-compose.yaml << EOF version: '3' services: # redis1配置 redis1: image: redis:6.0.16 container_name: redis-1 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-1/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis2配置 redis2: image: redis:6.0.16 container_name: redis-2 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-2/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis3配置 redis3: image: redis:6.0.16 container_name: redis-3 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-3/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis4配置 redis4: image: redis:6.0.16 container_name: redis-4 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-4/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis5配置 redis5: image: redis:6.0.16 container_name: redis-5 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-5/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] # redis6配置 redis6: image: redis:6.0.16 container_name: redis-6 restart: always environment: - REDISCLI_AUTH=123456 network_mode: "host" volumes: - ./redis-6/redis.conf:/usr/local/etc/redis/redis.conf command: ["redis-server", "/usr/local/etc/redis/redis.conf"] EOF
启动容器
docker-compose up -d
查看启动状态确保up
docker ps
创建集群(执行完会提示输入yes)
docker exec -it redis-1 redis-cli --cluster create 10.211.55.7:6381 10.211.55.7:6382 10.211.55.7:6383 10.211.55.7:6384 10.211.55.7:6385 10.211.55.7:6386 --cluster-replicas 1
#下边这个不用执行
docker exec -it redis-1 redis-cli --cluster create -a 123456 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1
连接redis-1节点并查看集群信息节点信息
docker exec -it redis-1 redis-cli -c -h 10.211.55.7 -p 6381 -a 123456
cluster info
cluster nodes
使用set和get命令测试(set会自动到某个节点切片get也会在该切片上获取,但连接点不变)
set name grant
get name
设置密码(已在配置文件中添加)
在redis.conf中添加
masterauth 123456
requirepass 123456
在dockerfile中添加
environment:
- REDISCLI_AUTH=123456
认证连接
redis-cli -c -h 10.211.55.7 -p 6381 -a 123456
使用rdm连接单个

查看正在连接redis的进程
ps -ef | grep redis
有问题可以删除
docker stop redis-1 redis-2 redis-3 redis-4 redis-5 redis-6 docker rm redis-1 redis-2 redis-3 redis-4 redis-5 redis-6 ps -ef |grep redis

浙公网安备 33010602011771号