目录
第十二章 Redis集群
12.1 简介
集群,即Redis Cluster。集群由多个节点组成,Redis的数据分布在这些节点中。
集群方式有两种:
①通过代理主机来解决:
②redis3.0提供了解决方案,无中心化集群:
集群的作用:
①数据分区(数据分片):是集群最核心的功能。集群将数据分散到多个节点,一方面扩大了存
储容量,实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这N个
节点中;另一方面每个主节点都可以对外提供读服务和写服务,大大提高了集群的响应能
力。
②高可用:集群支持主从复制和主节点的自动故障转移(与哨兵类似)。当任一节点发生故障
时,集群仍然可以对外提供服务。
12.2 集群搭建
在一台虚拟机中使用六个不同的端口号来模拟六个节点,其中三个主节点,三个从节点,组成一个集群。
集群的搭建可以分为4步:
①启动节点:将节点以集群模式启动。此时各个节点之间还是独立的。
②节点握手:让独立的节点连成一个网络。
③分配槽:将16384个槽分配给主节点。
④指定主从关系:为从节点指定主节点。
12.2.1 启动节点
各个端口的rendis的配置文件redis.conf修改:
①cluster-enabled yes:打开集群模式。
②cluster-config-file:设定节点配置文件名。该参数指定了集群配置文件的位置。每个节点
在运行过程中,会维护一份集群配置文件;每当集群信息发生变化时(如增减节点),集群内
所有节点会将最新信息更新到该配置文件;当节点重启后,会重新读取该配置文件,获取集
群信息,可以方便的重新加入到集群中。也就是说,当Redis节点以集群模式启动时,会首
先寻找是否有集群配置文件,如果有则使用文件中的配置启动,如果没有,则初始化配置并
将配置保存到文件中。集群配置文件由Redis节点维护,不需要人工修改。
③cluster-node-timeout:设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换。
一共需要六份redis.conf文件:
启动六个redis:
12.2.2 将六个节点合成一个集群
节点启动以后是相互独立的,并不知道其他节点存在;需要进行节点握手,将独立的节点组成一个网络。
首先需要进入redis的安装目录下的src文件夹中:因为需要ruby环境,而在当前版本的redis中,已经封装集成了,不需要单独安装。即redis-cli中已经集成了redis-trib.rb。
将六个节点合成一个集群:
redis-cli [-a 密码] --cluster create --cluster-replicas 1 192.168.128.100:6379 192.168.128.100:6380 192.168.128.100:6381 192.168.128.100:6389 192.168.128.100:6390 192.168.128.100:6391
1表示采用最简单的方式配置集群,一台主机,一台从机,正好三组。
合体成功后,显示: