只当个搬运工吧

搭建篇:https://www.cnblogs.com/mafly/p/redis_cluster.html  测试能用

常见问题:

1 redis操作key时出现以下错误 (error) MOVED 5798 127.0.0.1:7001

 https://www.fashici.com/tech/356.html

2.ERR] Not all 16384 slots are covered by nodes.

https://blog.csdn.net/vtopqx/article/details/50235891

3.in `call': ERR Slot 8579 is already busy (Redis::CommandError)

错误提示是

slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。)

解决方案是

用redis-cli 登录到每个节点执行  flushall  和 cluster reset  就可以了。然后重新执行群集脚本命令:

./redis-trib.rb create --replicas 0 192.168.3.15:6379 192.168.3.15:6380 192.168.3.15:6381 

4.[ERR] Not all 16384 slots are covered by nodes.

  redis群集搭建成功后,6379节点莫名其的宕机,重启了几次,一会儿就又宕机了。在 /my_soft/Redis安装包及jar包/redis-3.0.4/src 目录 下执行check脚本:

./redis-trib.rb check 192.168.3.15:6379
./redis-trib.rb check 192.168.3.15:6380
./redis-trib.rb check 192.168.3.15:6381

  

  1. 其中,6379节点出现了:[ERR] Not all 16384 slots are covered by nodes. 如下图所示:

slot插槽出问题了,修复slot 执行下面的命令:

./redis-trib.rb fix 192.168.3.15:

当然了,我们也可以把6380、6381节点都修复一下:

  1.  
    ./redis-trib.rb fix 192.168.3.15:6380
  2.  
    ./redis-trib.rb fix 192.168.3.15:6381

修改完毕后,重启6379节点,

/usr/local/bin/redis-server  /my_soft/my_config/redis3/6379/redis.conf

5.集群操作

移动槽

redis-trib.rb reshard 127.0.0.1:6360
执行集群reshard操作,通过集群中127.0.0.1:6360这一台机器
 
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 2731
输入需要移动的槽数量
 
What is the receiving node ID? 21c93aa709e10f7a9064faa04539b3ecd
输入接收的节点的ID
 
How many slots do you want to move (from 1 to 16384)? 2731
What is the receiving node ID? 0abf4ca21c93aa709e10f7a9064faa04539b3ecd
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:0ddb4e430dda8778ac873dd169951c7d71b8235e
Source node #2:done
输入所有被移动的节点ID,确认后输入done
 
    Moving slot 5460 from 0ddb4e430dda8778ac873dd169951c7d71b8235e
    Moving slot 13653 from 0ddb4e430dda8778ac873dd169951c7d71b8235e
Do you want to proceed with the proposed reshard plan (yes/no)?
检查后输入yes进行移动分槽
至此,分槽移动完毕。
 
 

删除节点

 
redis-trib.rb del-node 127.0.0.1:6360 'f24c0c1ecf629b5413cbca632d389efcad7c8346'
最后跟着的是这个节点的ID,可在redis-cli终端中使用CLUSTER NODES查看
必要条件,此节点所有分槽均已移除。
 
 

添加master节点

redis-trib.rb add-node 127.0.0.1:6360 127.0.0.1:6350
新节点必须是空的,不能包含任何数据。请把之前aof和dump文件删掉,并且若有nodes.conf也需要删除。
add-node  将一个节点添加到集群里面, 第一个是新节点ip:port, 第二个是任意一个已存在节点ip:port
node:新节点没有包含任何数据, 因为它没有包含任何slot。新加入的加点是一个主节点, 当集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中,同时新的主节点因为没有包含任何slot,不参加选举和failover。
 
 

添加一个从节点

前三步操作同添加master一样
第四步:redis-cli连接上新节点shell,输入命令:cluster replicate 对应master的node-id

redis-cluster 集群搭建详细指南及常见问题集合的更多相关文章

  1. Redis Cluster集群搭建与配置

    Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...

  2. Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)

    前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...

  3. Redis Cluster集群搭建与应用

    1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...

  4. Redis Cluster集群搭建<原>

    一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标     Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...

  5. Redis 集群搭建详细指南

    先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...

  6. 【Redis】Redis cluster集群搭建

    Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...

  7. Redis Cluster集群搭建后,客户端的连接研究(Spring/Jedis)(待实践)

    说明:无论是否已经搭建好集群,还是使用什么样的客户端去连接,都是必须把全部IP列表集成进去,然后随机往其中一个IP写. 这样做的好处: 1.随机IP写入之后,Redis Cluster代理层会自动根据 ...

  8. centos8平台redis cluster集群搭建(redis5.0.7)

    一,规划 redis cluster 1,cluster采用六台redis,3主3从 redis1    : ip: 172.17.0.2 redis2    : ip: 172.17.0.3 red ...

  9. Redis Cluster 集群搭建与扩容、缩容

    说明:仍然是伪集群,所有的Redis节点,都在一个服务器上,采用不同配置文件,不同端口的形式实现 前提:已经安装好了Redis,本文的redis的版本是redis-6.2.3 Redis的下载.安装参 ...

随机推荐

  1. CSS中水平居中设置的几种方式

    1.行内元素: 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的. <body> <div class="t ...

  2. Scrum立会报告+燃尽图(十月十七日总第八次):分配Alpha阶段任务

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...

  3. Java 通过先序中序序列生成二叉树

    题目 二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证. 输入: 1 2 3 4 5 6 7 8 9 10 3 2 5 4 1 7 8 6 10 9 ...

  4. 基础系列(1)—— NET框架及C#语言

    一.在.NET之前的编程世界 C#语言是在微软公司的.NET框架上开发程序而设计的,首先作者给大家纠正了一下C#的正确发音:See Sharp (一) 20世纪90年代末的Windows编程 这时大多 ...

  5. 第8章 Linux磁盘与文件系统管理

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  6. 3dContactPointAnnotationTool开发日志(三一)

      在玩的时候遇到了一个python的问题: Traceback (most recent call last): File ".\convert.py", line 13, in ...

  7. alpha发布评论

    飞天小女警我们自己的礼物挑选工具完整度不高,页面简陋,还有很多需要完善和改进的地方,空间比较大,但是本身能力太不足. 个人比较喜欢奋斗吧兄弟做的食物链系统.感觉是可以拿来用的工具吧. 天天向上的游戏连 ...

  8. IDEA设置头注释—自定义author和date

    IDEA设置头注释,自定义author和date的方法如下所示: 去掉波浪线的方式:鼠标选中单词 --> 点击鼠标右键 --> spelling --> save 'xxx' to ...

  9. promise你懂了吗?

    你能答对几题? 题目一 const promise = new Promise((resolve, reject) => { console.log(1) resolve() console.l ...

  10. 【linux】linux的数据流重定向

    首先说一下什么是数据流重定向,所谓数据流重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块(code block)的输出,然后把捕捉到的输出,作为输入发送给另外 ...