https://www.cnblogs.com/ybch/p/14445612.html
这里说明redis 无法指定swarm方式进行部署,必须是host方式运行
新建文件夹
mkdir -p /home/redis-data/node1
mkdir -p /home/redis-data/node2
mkdir -p /home/redis-data/node3
chmod 777 /home/redis-data/node3
chmod 777 /home/redis-data/node2
chmod 777 /home/redis-data/node1
编辑配置文件 node1
vim /home/redis-data/node1/redis.conf
# redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.103
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
protected-mode no
save 60 10000
save 300 10
save 900 1
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
# 数据文件存放目录,rdb快照文件和aof文件都会存放至该目录,请确保有写权限
dir ./
编辑node2 和node3
vim /home/redis-data/node2/redis.conf
vim /home/redis-data/node3/redis.conf
# redis.conf
port 6380
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.0.103
cluster-announce-port 6380
cluster-announce-bus-port 16380
appendonly yes
protected-mode no
启动服务
docker run -p 6379:6379 --restart always --name redis-node1 --net host --privileged=true -v /home/redis-data/node1/redis.conf:/etc/redis/redis.conf -v /home/redis-data/node1:/data -d redis redis-server /etc/redis/redis.conf
docker run -p 6380:6380 --restart always --name redis-node2 --net host --privileged=true -v /home/redis-data/node2/redis.conf:/etc/redis/redis.conf -v /home/redis-data/node2:/data -d redis redis-server /etc/redis/redis.conf
docker run -p 6381:6381 --restart always --name redis-node3 --net host --privileged=true -v /home/redis-data/node3/redis.conf:/etc/redis/redis.conf -v /home/redis-data/node3:/data -d redis redis-server /etc/redis/redis.conf
配置集群 进入容器node1执行
docker exec -it redis-node1 /bin/bash
redis-cli --cluster create 192.168.0.103:6379 192.168.0.103:6380 192.168.0.103:6381 --cluster-replicas 0
--cluster-replicas 0 :这里面3台集群机器组成集群,没有从机所以用 0
假如需要高可用的备份需要在启动3个redis,参数改为1,即有一个从集群,需要两套备份就是2,当然需要再起动3个redis。
点波关注 系统搭建(docker)
网友评论