使用docker 创建6节点redis 集群 RedisCluster redis集群
1.RedisCluster 特点(3主节点redis 集群 及6节点集群)
1.无中心节点,客户端与redis 节点直连,不需要中间代理,(有选举机制 master个数需要奇数个)
2.数据可以被分片储存(设置冗余节点备份)
3.管理方便
1.获取redis 镜像
docker pull yyyyttttwwww/redis
改名 docker tag yyyyttttwwww/redis redis
2.运行redis 容器
docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash
# --net=net2 网段
#--ip 172.19.0.2 设置ip
3.删除 docker_gwbridge (网段不删除不好用)
4.创建net2 网段
docker network create --subnet=172.19.0.0/16 net2
5。创建redis
docker run -it -d --name r1 -p 5001:6379 --net=net2 --ip 172.19.0.2 redis bash
5.进入redis 容器修改配置文件 /usr/redis/redis.conf
vi /usr/redis/redis.conf
6.启动 redis
cd /usr/redis/src/
./redis-server ../redis.conf
7.依次创建其他5节点redis ,分别进入各节点redis 的容器中 /usr/redis/src/ 使用 ./redis-server ../redis.conf 启动redis
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
进入redis r1 节点
1.在 /usr/redis 下创建 创建空目录 、
mkdir /usr/redis/cluster/
2. 将 redis-trib.rb 复制到新创建 cluster 的目录下
cp /usr/redis/src/redis-trib.rb /usr/redis/cluster/
在docker库获取镜像:redis,ruby;下载redis-trib.rb(命令:wget http://download.redis.io/redis-stable/src/redis-trib.rb
3. 更新apt-get 安装ruby rubygems 程序,使用rubygems gem 安装redis 集群
apt-get update
apt-get install ruby
apt-get install rubygems
gem install redis
4.进入 /usr/redis/cluster/ 创建集群(yyyyttttwwww/redis 镜像中都已经创建好了ruby 环境 直接镜如下像创建集群的指令即可)
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
--replicas 1 #每一个主节点创建一个从节点
5. 使用任何一个节点链接redis 集群
docker exec -it r1 bash
/usr/redis/src/redis-cli -c
-c 链接redis集群
6. 进入r1容器节点 使用工具 /usr/redis/src/redis-cli -c 连接集群
7.验证 写入数据 set get 写入数据 读取数据
8.推销是那个节点并将期暂停后在读写数据 docker pause r2 (创建时的ip 推算172.19.0.3)
9. 退出redis 集群链接后重新链接 读取数据,如下可以看出redis集群链接到r5节点( 172.19.0.6 )
10.查看集群运行的状况 cluster nodes ( j进入容器,链接集群,)就可以看出r2 节点是挂掉的
11. 使用 docker unpause r2 进行恢复,恢复后该节点自动降级为salve 节点