在Windows下创建redis cluster集群
https://www.geek-share.com/detail/2694185600.html
博客主里面的步骤真的很详细了,按步就班的来就没有任何问题
下面我就说说在此过程中自己不懂的和又添加的
conf文件复制
在此
port 6380 #端口号 loglevel notice #日志的记录级别,notice是适合生产环境的 logfile "Logs/redis6380_log.txt" #指定log的保持路径,默认是创建在Redis安装目录下,如果有子目录需要手动创建,如此处的Logs目录 syslog-enabled yes #是否使用系统日志 syslog-ident redis6380 #在系统日志的标识名 appendonly yes #数据的保存为aof格式 appendfilename "appendonly.6380.aof" #数据保存文件 cluster-enabled yes #是否开启集群 cluster-config-file nodes.6380.conf #集群节点配置文件 cluster-node-timeout 15000 # 集群连接超时时间 cluster-slave-validity-factor 10 cluster-migration-barrier 1 cluster-require-full-coverage yes
最后三个没有解释:下面解释一下
- cluster-slave-validity-factor 10:在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。判断方法是:比较slave断开连接的时间和(node-timeout * slave-validity-factor)+ repl-ping-slave-period如果节点超时时间为三十秒, 并且slave-validity-factor为10,假设默认的repl-ping-slave-period是10秒,即如果超过310秒slave将不会尝试进行故障转移
- cluster-migration-barrier 1:#master的slave数量大于该值,slave才能迁移到其他孤立master上,如这个参数被设为2,那么只有当一个主节点拥有2个可工作的从节点时,它的一个从节点才会尝试迁移。
- cluster-require-full-coverage yes:#集群全部的slot有节点负责,集群状态才为ok并提供服务。设置为no可以在slot没有全部分配的时候提供服务。不建议打开该配置,这样会造成分区的时候,小分区的master一直在接受写请求,而造成很长时间数据不一致。
在把集群里的服务注册到本地服务的命令
一看有点懵逼,难道可以先注册,再conf改服务名,后来我想错了,只是全打而已,不过我还是用的我前面注册redis服务命令那一套
创建集群的命令
redis-trib.rb create --replicas 0 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
这我端口用的和博客主不一样,大家应该能看懂
redis-trib.rb 程序的命令是 create , 这表示我们希望创建一个新的集群。
replicas 0,这代表的是不创建从节(Slave),只把后面的端口创建成主节点(Master),如果改成1,就是希望每个主节点(Master)都有一个从节点(Slave),从后面的端口从选出谁是主节点谁是从节点,之后会打印出一份预想的配置出来,如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中,可以指定Slave在某个Master下,现在先不涉猎
在集群已经有的情况下添加主(从)节点
在比如上面这种只有三个主节点,想再这三个的基础上添加从节点,不可能都删除重新创建吧,那也太low了
https://www.geek-share.com/detail/2675164161.html
这篇博客有你需要的增加主节点,哈希槽的分配问题,增加从节点,删除节点等。
下面我演示添加从节点
先删除以前主从的redis服务(6380,6381,6382),把这些配置成redis cluster的Slave
我用
sc delete "服务名"没办法删除redis6380等服务,无法访问,就用的redis自带的删除服务
redis-server --service-uninstall --service-name "服务名"
这就算删除成功了
警告:这是删除单个redis缓存的,和集群没关系,如果要删除集群的节点,请参考上面那篇博客,要不会出问题的
给集群的那三个主节点(6383,6384,6385)配置从节点
先查询已配置的主节点的详细信息,因为配置从节点需要他们的id
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息
可以看看代表什么信息
ID | IP:端口 | Master/Slave | 哈希值 |
---|---|---|---|
26492edbfbd6158f0d43f992fdbe737ab84266ee | 127.0.0.1:6383 | master | 0-5460 |
e8a79b4548757a54b5ff02f737e50df9a35b43f1 | 127.0.0.1:6384 | master | 5461-10922 |
2ef57108a9b9ba6fb46826049aab6cd704a43e05 | 127.0.0.1:6385 | master | 10923-16383 |
哈希值为什么这么分配我就不说了
开始配置6380,6381,6382的配置文件,和主节点的步骤一样,到在本地服务启动就停止,下面的步骤就不一样了
redis-trib.rb add-node --slave --master-id 主节点的ID 从节点IP:端口 主节点的IP:端口
这三个从节点都是执行,添加节点的博客说主节点的IP:端口可以是任何集群里的主节点的IP:端口,因为初学者,我还是把最后的主节点的IP:端口写的是前面ID的,这样可以更保险些,但是我不是说它的就是错的,大家可以试试
查询redis集群的详细信息,出现这些说明你配置成功了
再次提醒:这是添加从节点,不用担心哈希槽的问题,如果添加或者删除主节点,一定要想到哈希槽的分配问题,要不就会要不添加的主节点没用到(添加主节点),要不就会使存在集群里的数据丢失(删除主节点)
- redis cluster 集群配置示例: 创建, 添加节点, 重新分片, 删除节点
- 在Windows 2000/2003集群上创建任务计划
- Windows 配置Reids集群 Redis Cluster
- Windows 配置Redis集群 Redis Cluster
- 在Windows中单机环境下创建RabbitMQ集群
- 在Windows中单机环境下创建RabbitMQ集群
- windows redis集群创建步骤
- 在 Windows 上测试 Redis Cluster的集群填坑笔记
- 纯手动创建Redis Cluster集群,最原始的三主三从创建方法
- 使用 Kubernetes 在 Windows 10 上创建本地集群
- 在windows上 部署 Redis cluster模式的集群服务
- Windows操作系统下创建进程的过程
- 关于weblogic多台服务器分发配置(没有创建集群)
- windows下快速创建大文件
- windows单机搭建RabbitMQ集群
- C#创建windows Service步骤
- Nodejs创建https服务器(Windows 7)
- 使用 Microsoft.NET Frameworks 创建Windows应用程序
- C#创建一个Windows Service
- oracle rac12c dbca创建集群实例时候,只能识别到一个节点