Redis集群

您所在的位置:网站首页 去中心化有哪些模式 Redis集群

Redis集群

2023-06-27 01:59| 来源: 网络整理| 查看: 265

去中心化模式特点

之前介绍的主从模式和哨兵模式都只有一个master主节点,如果写操作并发比较大时,这两个模式就会堵塞。这时就可以使用集群化模式,也称之为去中心化模式,其特点是多master和多slave。

去中心化的原理为:Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 会先对 key 使用 crc16 算法算出一个结果,然后将结果对 16384 求余,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点上。当你往Redis Cluster中加入一个Key时,会根据 crc16(key) mod 16384计算这个 key 应该分布到哪个 hash slot 中,一个hash slot 中会有很多key和value。你可以理解成分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里,当改用Redis Cluster以后会自动为你生成16384个分区表,写入数据时会根据上面的算法来决定你的 key 应该存在哪个分区。

搭建去中心化模式 准备工作

在这里插入图片描述 此次使用同一主机的不同端口来模拟多个服务进程,分别使用7001、7002、7003、7004、7005、7006六个端口来搭建去中心化模式。

首先修改配置文件中的以下内容。

# 设置远程连接IP改为任意 bind 0.0.0.0 -::1 # 服务进程端口 port 7001 # 使用守护线程方式启动 daemonize yes # 开启 aof 持久化 appendonly yes # 日志文件名称 appendfilename "appendonly7001.aof" # 日志文件夹名称 appenddirname "appendonlydir7001" # 开启集群模式 cluster-enabled yes # 集群配置文件 cluster-config-file nodes-7001.conf # 集群超时时间 cluster-node-timeout 5000

并为其他五个端口生成配置文件。

在这里插入图片描述

开始搭建

启动所有配置文件,并查看进程状况。

在这里插入图片描述

使用redis-cli --cluster命令为端口配置主从关系及哈希槽。

# 1为每个主节点的从节点个数 redis-cli --cluster create --cluster-replicas 1 192.168.112.66:7001 192.168.112.66:7002 192.168.112.66:7003 192.168.112.66:7004 192.168.112.66:7005 192.168.112.66:7006

运行完成后可以查看各个服务的主从关系。

在这里插入图片描述

测试

登入服务测试搭建结果。

# -c为使用集群化模式 -p为链接端口号 -h为服务器IP(本地可以省略) redis-cli -c -p 7001

写入数据时,redis会先对 key 使用 crc16 算法算出一个结果,然后将结果对 16384 求余,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点上,然后根据数值选择对应的主服务器进行写操作。

在这里插入图片描述

模拟其中一个主节点(此处例举为7003端口)宕机。 在这里插入图片描述

使用命令重新查看集群状态。

# 检查当前集群状态 链接的IP地址以及服务端口 redis-cli --cluster check 192.168.112.66:7001

在这里插入图片描述 可以看到7003的从节点7004已经替代选举为主节点,说明集群模式集成了哨兵模式,可以对从节点进行选举。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3