本文参考:redis群集群的构建和实践
Redis最初将主模式用作集群。如果主机停机时间,您需要手动切换为主人。因此,有一个哨兵模式,该模式在此模式下具有哨兵监视主和从属。但是它也有一个无法动态扩展的问题。因此,群集群集模式在3.x中提出,并且群集模式中的数据存储在每个节点中。建立群集后,必须将其添加到每个主节点,例如,群集包含主节点。A,B,C和来自节点A1,B1,C1,然后即使B悬挂了系统,也可以挂在系统上。运行正常。
REDIS群集使用集中式结构。每个节点保存数据和整个群集状态,每个节点都连接到所有其他节点。
它的结构特征:1。所有重新淋巴结均相互连接(ping-poong机制),并且二进制协议被优化,并用内部的二进制协议进行了带宽2。节点的失败仅在群集中的节点检测失败时才生效。3。客户端直接连接到redis节点,并且无需连接到中间代理层。客户端不需要连接到群集的所有节点,以及集群中的任何可用节点4。redis cluster将所有物理节点映射到[0-16383]插槽(不一定要分配),群集负责维护节点<->投币口<->值5。REDIS簇前16,384桶。当需要根据CRC16(KEY)MOD 16384的值将键值放置在Redis群集中时,它确定要放置一个钥匙。
A.RDIS群集节点分配。现在我们是三个主要节点:a,b,c,可以是机器上的三个端口或三个不同的服务器。
它类似于删除节点。移动完成后,您可以删除此节点。
为了确保数据的高可用性,B.Redis群集mainstorphic模式REDIS群集添加了主和从模式。主节点对应于节点和主节点的一个或多个,以提供数据访问。backup,当此主节点挂起时,从节点中有一个作为主节点,因此
在上面的示例中,群集具有ABC的三个主要节点。如果未在节点中添加这三个节点,则如果B挂起,我们将无法访问整个群集。A和C的插槽将无法访问。
因此,当我们在集群中建立时,我们必须为每个杰作添加一个节点,例如,群集包括主节点A,B,C和节点A1,B1,C1悬挂系统的系统也可以继续正常工作。
B1节点替换了节点B,因此Redis群集将选择B1节点作为新的主节点,并且簇将继续正确提供服务。当B重新出现时,它将成为B1的节点。
但是,应该注意的是,如果节点B和B1同时悬挂,那么Redis群集将无法继续正确提供服务。
群集中至少应该有几个节点,因此至少有三个节点,每个节点至少具有一个备份节点。unzipredis压缩软件包,编译和安装
修改redis01的bin文件夹在redis-Cluster下,复制redis.conf配置文件以创建一个目录redis-cluster,并在此目录中创建7000 7001 7002 7003 7004 7005。创建配置文件redis.conf The内容如下:
将redis.conf复制到其他目录
2.安装redis-trib所需的红宝石脚本注意:CentOS7的Ruby版本太低(2.0),卸载重新安装(最小2.2)
将REDIS解压缩文件下的Redis-Trib.rb文件复制到Redis-Cluster目录并安装GEM
如果您不想在SRC目录中安装宝石,也可以直接使用。
请注意,GEM安装可能会报告无法请求OpenSSL,安装OpenSSL和Rebuild Ruby(首选)或使用...解决方案步骤:
3.启动所有redis节点以编写命令脚本start-all.sh
设置权威启动
查看REDIS过程的起始状态
您可以看到REDIS的6个节点已成功启动:这里没有群集
4.使用redis-trib.rb创建群集注意:redis-trib.rb在redis/src目录中。
使用创建命令-replicas 1参数为每个主节点创建一个节点,而其他参数是实例的地址集。
创作是成功的。有3个主要节点,三个来自节点,每个节点已成功连接。
测试存款值,客户端连接群集redis -cli需要带-c,redis -cli -c -c -p端口号
根据Redis-Cluster的密钥值,应将名称分配给节点7002 [5461-10922],该名称表明Redis群集从7001自动跳到7002个节点。
从节点测试7000以获取名称值
现在,模拟将悬挂节点7002,并且根据重新群集原则选举,从节点7005选举中的7002选举将是主要节点。
在集群中查看7002个节点
您可以看到群集无法连接到7002个节点,而7005将原始S转换为M节点,替换原始7002节点。我们可以获取名称值:
从节点7001集成,自动跳至7005节点,并获取名称值。
现在,我们将还原7002个节点,以查看它是否会自动连接群集和M节点。
再次检查7002个节点,您可以看到7002个节点从节点变为7005。
部署Redis Cluser后,我们登录到任何节点以执行以下操作
推荐阅读:
从摊位 - alone到群集技术字符串:https://www.cnblogs.com/ludongguoa/p/15324315.html
https://www.cnblogs.com/renpingsheng/p/9862485.htm