https://www.cnblogs.com/tommy-huang/p/6240083.html 博客主里面的步骤真的很详细了,按步就班的来就没有任何问题 下面我就说说在此过程中自己不懂的和又添加的
在此
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服务命令那一套
而最新版本5.x版本换成(这几天才知道)
redis-cli --cluster create 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.cnblogs.com/yanwei-wang/p/5527453.html 这篇博客有你需要的增加主节点,哈希槽的分配问题,增加从节点,删除节点等。 下面我演示添加从节点
我用sc delete "服务名"没办法删除redis6380等服务,无法访问,就用的redis自带的删除服务
redis-server --service-uninstall --service-name "服务名"这就算删除成功了 警告:这是删除单个redis缓存的,和集群没关系,如果要删除集群的节点,请参考上面那篇博客,要不会出问题的
先查询已配置的主节点的详细信息,因为配置从节点需要他们的id
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息可以看看代表什么信息
IDIP:端口Master/Slave哈希值26492edbfbd6158f0d43f992fdbe737ab84266ee127.0.0.1:6383master0-5460e8a79b4548757a54b5ff02f737e50df9a35b43f1127.0.0.1:6384master5461-109222ef57108a9b9ba6fb46826049aab6cd704a43e05127.0.0.1:6385master10923-16383哈希值为什么这么分配我就不说了 开始配置6380,6381,6382的配置文件,和主节点的步骤一样,到在本地服务启动就停止,下面的步骤就不一样了
redis-trib.rb add-node --slave --master-id 主节点的ID 从节点IP:端口 主节点的IP:端口这三个从节点都是执行,添加节点的博客说主节点的IP:端口可以是任何集群里的主节点的IP:端口,因为初学者,我还是把最后的主节点的IP:端口写的是前面ID的,这样可以更保险些,但是我不是说它的就是错的,大家可以试试 查询redis集群的详细信息,出现这些说明你配置成功了 再次提醒:这是添加从节点,不用担心哈希槽的问题,如果添加或者删除主节点,一定要想到哈希槽的分配问题,要不就会要不添加的主节点没用到(添加主节点),要不就会使存在集群里的数据丢失(删除主节点)
