redis版本:3.2.3
架构:
3节点redis集群,并为每个节点设置一个备用节点,共6个节点
1、安装redis镜像
docker load < docker.redis.tar.gz
2、创建网段
docker network create --subnet=172.19.0.0/16 net2
3、创建6节点的redis容器
docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash
docker run -it -d --name r2 -p 5002:6379 --net=net2 --ip 172.19.0.3 redis bash
docker run -it -d --name r3 -p 5003:6379 --net=net2 --ip 172.19.0.4 redis bash
docker run -it -d --name r4 -p 5004:6379 --net=net2 --ip 172.19.0.5 redis bash
docker run -it -d --name r5 -p 5005:6379 --net=net2 --ip 172.19.0.6 redis bash
docker run -it -d --name r6 -p 5006:6379 --net=net2 --ip 172.19.0.7 redis bash
4、为6个节点redis修改配置文件,并启动服务
#进入r1节点
docker exec -it r1 bash
#修改配置文件
vi /usr/redis/redis.conf
#需要修改以下内容:
daemonize yes #后台进程运行
bind 0.0.0.0 #允许任意ip连接
cluster-enabled yes #开启集群
cluster-config-file nodes.file #集群配置文件
cluster-node-timeout 15000 #超时时间
appendonly yes #开启AOF日志模式 #启动服务
cd /usr/redis/src
./redis-server ../redis.conf #查看服务是否启动成功
ps -ef | grep redis 为其余5个节点依次完成以上操作
5、创建redis集群
#本镜像中已安装配置完成ruby环境,直接创建redis集群即可
#进入任一redis节点
docker exec -it r1 bash
#创建一个文件夹
cd /usr/redis
mkdir cluster
cd src
cp redis-trib.rb ../cluster/
cd ../cluster
./redis-trib.rb create --replicas 1 172.19.0.2:6379 172.19.0.3:6379 172.19.0.4:6379 172.19.0.5:6379 172.19.0.6:6379 172.19.0.7:6379 --replicas 1 表示前三个ip为3个主节点 ,后3个ip依次为各主节点的slave节点
6、进入redis集群中测试
cd /usr/redis/src
./redis-cli -c #-c表示进入集群
完成。