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表示进入集群
完成。