配置redisCluster集群_docker

1.安装Redis镜像

docker pull yyyyttttwwww/redis

2.创建net2网段

docker network create --subnet=172.19.0.0/16 net2

3创建1个节点Redis容器

#redis镜像改名:

docker tag docker.io/yyyyttttwwww/redis redis

#删除旧的redis

docker rmi docker.io/yyyyttttwwww/redis

#创建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.分别修改每个redis容器的配置文件,使得集群功能开启,如下是修改r1 这个容器,其他容器修改方式同理,虽然这种方式不是很快捷,重复性劳动比较多, 如果redis的个数是成百的,那么会很不方便,这里先暂且以满足目标为导向,暂不考虑效率问题

docker exec -it r1 sh

vi /usr/redis/redis.conf

修改:daemonize yes 

        cluster-enabled yes

        cluster-config-file nodes.conf 

        cluster-node-timeout 15000

        appendonly yes

配置redisCluster集群_docker_02

注意还要修改bind ,bind对应你docker run时的指定ip ,每个redis集群的ip都不一样,比如我其中一个redis ip是172.19.0.2 ,那么我就要将bind 修改为172.19.0.2,如下:

配置redisCluster集群_redis_03

cd /usr/redis/src

./redis-server ../redis.conf
#这里我把对各个redis的操作命令整理,方便快速搭建
#进入r1节点
docker exec -it r1 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip
#进入r2节点
docker exec -it r2 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip
#进入r3节点
docker exec -it r3 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip
#进入r4节点
docker exec -it r4 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip
#进入r5节点
docker exec -it r5 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip
#进入r6节点
docker exec -it r6 bash
vi /usr/redis/redis.conf #修改redis.conf
cd /usr/redis/src
./redis-server ../redis.conf
ps -ef | grep redis #检查启动是否是正确的ip

5.使用redis-trib.rb构建redis 集群

docker exec -it r1 sh

cd /usr/redis

mkdir cluster

cp /usr/redis/src/redis-trib.rb /usr/redis/cluster

cd /usr/redis/cluster

#创建ruby环境

gem #测试是否有ruby环境,我的redis镜像默认是拥有ruby的环境,如果有,则直接进入#创建Cluster集群

apk add ruby

apk add rubygems

gem install redis

#检查测试
ps -ef| grep redis
root 65 0 0 06:54 ? 00:00:00 ./redis-server 172.19.0.2:6379 [cluster]
#显示172.19.0.2:6379,而不是127.0.0.1:6379代表成功

#创建Cluster集群
cd /usr/redis/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

6.测试redis 的高可用性,高性能

/usr/redis/src/redis-cli -c -h 172.19.0.2  # -c代表以集群方式启动 ,注意要加上-h指定是哪个ip 

set a 10 

配置redisCluster集群_bash_04

测试结果显示正常!!!