RedisCluster搭建过程非常适合新手转载本文请联系精益码农公众号。Redis集群演进过程Redis单节点主从复制:复制主要实现数据的多机备份,以及读操作的负载均衡和简单的故障恢复。故障恢复不能自动化;写操作不能负载均衡;存储容量受限于单机。Sentinel:在复制的基础上,Sentinel实现故障自动恢复。缺点是写操作不能负载均衡;存储容量受限于单机。Cluster集群:Redis通过shardingcluster,解决写操作无法负载均衡,存储容量受单机限制的问题。它还具有故障转移(主从切换)的功能,实现了一个比较完整的高可用解决方案。科普功能可以参考上面的架构图。rediscluster单机版默认不支持16个数据库,只有0个数据库,select命令被禁用。密钥空间被划分为16384个哈希槽,每个主节点负责处理16384个哈希。插槽的子集;当集群没有重新配置且集群稳定时,每个master可能有一个或多个slave节点。这些节点将在网络分区或故障的情况下尝试替换主节点。同时,这些从节点也可以用来支持大规模读操作和映射key到hash操作的算法是hash_slot=CRC16(16)mod16384exception:keyhashtags:{user1000}.followingand{user1000}.followers两个键值会放在一个哈希槽中,因为只有子串user1000会被用来计算哈希槽。集群总线:每个redis节点都有一个tcp端口用于集群节点之间的通信(在原来的客户端访问端口上加1000),节点之间使用gossip协议和配置更新机制来避免正常情况下它们之间交换过多的消息,所以交换的消息数量不是指数级的。Redis客户端可以向集群中的每个节点(包括从节点)发送查询,节点会分析查询键,找到负责对应哈希槽的节点。当前节点可以最好地处理它。如果它无法处理它,它将返回MOVED错误、哈希槽和可以处理它的节点。客户端将自己定向到特定的新节点进行查询。一般情况下,从节点会将客户端请求重定向到负责对应哈希槽的主节点,但为了支持大规模读取,可以为从节点开启READONLY,搭建RedisCluster。本文使用单台物理机搭建一个伪Redis集群(3Master3Slave)1.创建redis-cluster目录存放集群2.下载最新版本的redis-6.2.4,复制可执行文件并bin目录下的redis.conf到同级目录redis013。修改redis01目录下的redis.conf配置:port7001cluster-enabledyes//之前注释了4.复制多个redis01组成redis02,redis02,redis04,redis05,redis06,修改对应的redis.conf端口为700270037004700570065.启动6个Redis节点,使用start.sh脚本(chmod+xstart.sh)每次启动命令后的&表示启动cdredis01./redis-serverredis.conf&cd..cdredis02./redis-serverredis.conf&cd..cdredis03./后台redis-serverredis.conf&cd..cdredis04./redis-serverredis.conf&cd..cdredis05./redis-serverredis.conf&cd..cdredis06./redis-serverredis.conf&cd..6.准备搭建redisclusterredis5+可以使用redis-cli特定命令组成集群;redis3,4使用redis-trib.rb辅助组建集群。使用redis-cli--cluster命令创建一个由6个节点组成的rediscluser,其中cluster-replicas1会为每个master节点创建一个slave节点(没有这个cluster-replicas,6个master节点会创建rediscluster)。redis-cli--clustercreate127.0.0.1:7001\127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005127.0.0.1:7006\--cluster-replicas17。验证集群状态使用redis-cli-p7001-c登录节点使用集群节点查看节点状态非常繁琐。Redis官方提供了另外一个工具,utils目录下的create-cluster脚本。create-clusterstartcreate-clustercreate会创建一个3ma3slave组成的redis集群(第一个节点端口从30001开始),所以前期知识可能一步步说不清楚。综上所述,以上就是RedisCluster的科普级知识,可以帮助大家快速全面的了解RedisCluster的特性,快速搭建RedisCluster。好记性不如烂笔头,该记一次了。
