首页 > 数据库 >redis集群配置

redis集群配置

时间:2023-01-03 13:35:37浏览次数:42  
标签:node -- 配置 redis 192.168 cluster 集群 71.100

redis集群配置

1、三主三从redis集群配置

1、新建6个docker容器实例

## --cluster-enabled yes 开启redis集群
## --net host 使用宿主机的ip和端口 默认
## --appendonly yes 开启持久化

docker run -d --name redis-node-1 --net host --privileged=true -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381

docker run -d --name redis-node-2 --net host --privileged=true -v /data/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382

docker run -d --name redis-node-3 --net host --privileged=true -v /data/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383

docker run -d --name redis-node-4 --net host --privileged=true -v /data/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384

docker run -d --name redis-node-5 --net host --privileged=true -v /data/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385

docker run -d --name redis-node-6 --net host --privileged=true -v /data/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

2、进入容器redis-node-1,并为6台机器构建集群关系

docker exec -it redis-node-1 /bin/bash

## --cluster create 构建集群
## --cluster-replicas 1 为每一个master创建一个slave节点

redis-cli --cluster create 192.168.71.100:6381 192.168.71.100:6382 192.168.71.100:6383 192.168.71.100:6384 192.168.71.100:6385 192.168.71.100:6386 --cluster-replicas 1

3、链接进入6381作为切入点,查看集群状态

redis-cli -p 6381

cluster info ## 查看集群信息
cluster nodes ## 本集群节点状态

2、主从容错切换迁移案例

1、数据读写存储

1、启动6台构成的集群,并通过exec进入

2、对6381新增两个key

3、防止路由失效加参数-c并新增两个key

docker exec -it redis-node-1 /bin/bash

## 通过集群方式进入
redis-cli -p 6381 -c

4、查看集群信息

redis-cli --cluster check 192.168.71.100:6381

此时主-从为:6381-6384、6382-6385、6383-6386

2、容错切换迁移

1、主6381和从机切换,先停止主机6381

docker stop redis-node-1

docker exec -it redis-node-2 /bin/bash

redis-cli -p 6382 -c

2、再次查看集群信息

cluster nodes

此时主-从为:6384-null、6382-6385、6383-6386

3、先还原之前的三主三从

docker start redis-nodes-1

4、查看集群状态

cluster nodes

此时主-从为:6384-6381、6382-6385、6383-6386 江湖规矩,你6381走了还想重新上位?凭什么

停止6384重新启动并查看集群状态

docker stop redis-node-4

docker start redis-node-4

cluster nodes

此时主-从为:6381-6384、6382-6385、6383-6386 老大发话了,6381重新上位(为了维持架构)

3、主从扩容案例

1、新建6387、6388两个节点+新建后启动+查看是否8个节点

docker run -d --name redis-node-7 --net host --privileged=true -v /data/redis/share/redis-node-7:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6387

docker run -d --name redis-node-8 --net host --privileged=true -v /data/redis/share/redis-node-8:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6388

2、进入6387容器实例内部

docker exec -it redis-node-7 /bin/bash

3、将新增的6387节点(空槽号)作为master节点加入原集群

redis-cli --cluster add-node 192.168.71.100:6387 192.168.71.100:6381

拜6381的码头找到组织加入集群

4、检查集群情况第一次

redis-cli --cluster check 192.168.71.100:6381

5、重新分派槽号

redis-cli --cluster reshard 192.168.71.100:6381

6、检查集群情况第二次

redis-cli --cluster check 192.168.71.100:6381

发现不是0-16383重新平均分配,而是每一家匀了一点槽位出来凑成了4096个槽位给6387

7、为主节点6387分配从节点6388

redis-cli --cluster add-node 192.168.71.100:6388 192.168.71.100:6387 --cluster-slave --cluster-master-id c95b22b4ac268b88ebc2a548f314c211dc727835 ## 这个是6387的id

8、检查集群情况第三次

redis-cli --cluster check 192.168.71.100:6382

4、主从缩容案例

1、检查集群情况第一次,获得6388的节点id

redis-cli --cluster check 192.168.71.100:6383

2、将6388删除

redis-cli --cluster del-node 192.168.71.100:6388 eca8b3f62c64a1c816a6ed950e71c45dcc1b2308

3、将6387的槽号清空,重新分配,本例将清出来的槽号都给6381

redis-cli --cluster reshard 192.168.71.100:6381

4、检查集群情况第二次

redis-cli --cluster check 192.168.71.100:6381

5、将6387删除

redis-cli --cluster del-node 192.168.71.100:6387 c95b22b4ac268b88ebc2a548f314c211dc727835

6、检查集群情况第三次

redis-cli --cluster check 192.168.71.100:6381

标签:node,--,配置,redis,192.168,cluster,集群,71.100
From: https://www.cnblogs.com/tanhongwei/p/17021796.html

相关文章

  • Django的urls配置(斜杠/变量/正则)
    url中的斜杠若path中带了斜杠,浏览器输入的url也是带斜杠的则直接可访问 若path中带斜杠,浏览器中输入的url最后未带斜杠,则会301重定向一次到带斜杠的地址......
  • SDN实验OVS使用配置-openvswitch的原理和常⽤命令
    openvswitch的原理和常⽤命令(部分信息借鉴于网友技术分享)第一部分.Openvswitch⼯作原理openvSwitch是⼀个⾼质量的、多层虚拟交换机,使⽤开源Apache2.0许可协议,由NiciraNe......
  • Haproxy+PaceMaker实现高可用负载均衡集群
    Haproxy+PaceMaker实验配置:server1,server2:集群节点server3,server4:后端服务器在server1配置haproxy:[root@server1~]#lsasciidoc-8.4.5-4.1.el6.noarch.rpmlibnfnet......
  • Openmeetings6.3.0版本部署、安装与配置
    一、openmeetings简介OpenMeetings是一个多语言可定制的视频会议和协作系统。它支持音频、视频,能让你查看每个与会者的桌面。OpenMeetings还包含一个白板,通过白板可以导入......
  • pycharm每次打开项目都需要配置解释器和安装库问题
    前言最近在使用pycharm开发新项目的时候,每次打开新的工程都显示没有解释器,要不加了解释器就是代码一堆没有红色错误提示没有模块问题,找到了解决办法做一个记录.问题打开......
  • nginx快速查看配置文件的方法
    nginx的配置放在nginx.conf文件中,一般我们可以使用以下命令查看服务器中存在的nginx.conf文件。locatenginx.conf/usr/local/etc/nginx/nginx.conf/usr/local/etc/nginx/ng......
  • 第十七章《MySQL数据库及SQL语言简介》第2节:MySQL数据库的下载、安装和配置
    ​MySQL数据库被广泛应用于各种行业软件,它开发了针对各种不同操作系统都开发了的版本。本节以Windows版本为例介绍MySQL数据库的下载、安装和配置。17.2.1MySQL的下载读者可......
  • maven 配置阿里镜像settings.xml
    <?xmlversion="1.0"encoding="UTF-8"?><settingsxmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance......
  • 玩转dnmp之端口配置篇
    文章简介在上面一篇文章中,分享过如何搭建和使用dnmp,今天分享如何修改dnmp中PHP容器的端口映射功能。问题归纳在PHP容器中,安装了一个swoole扩展,启动了一个server,端口是9501。......
  • 配置mysql与注册登录模块(中)
    登录模块设计先记录自己清理c盘自己采取的办法。清理document文件夹的TencentFile与压缩Windows文件夹jwt验证方式解决跨域问题**浏览器快速切换页面快捷键CTR......