Redis化境(一)Redis集群搭建
前言
本章讲解Redis集群的搭建
方法
1.概念
我们知道,有了主从复制和哨兵后,我们的Redis看似加强了很多功能,比如说读写分离,安全性等等。
但是,它存在的局限性也是存在的,比如仅仅配置一主多从,一主多从子多从,以及配置哨兵集群进行监控等等十分的繁杂。
而且既然是主从复制,那么从节点的数据和主节点数据是一样多的,没有达到分布的目的。
为了解决以上弊端,在redis3.0以后加入了集群的模式。到现在的5.0,集群的配置更为简洁。
5.0以前配置集群需要安装ruby环境,而且还需要顾忌ruby的版本,配置起来十分繁杂。
5.0之后配置集群无需事先配置ruby环境即可搭建,省时省力。
2.准备工作
1)我们需要准备6个用来测试的服务器,当然你也可以在一个服务器上模拟6个服务器测试,为了达到真实性,我选择六台CentOs虚拟机。端口号分别为192.168.1.103 ~ 192.168.1.108这6个服务器,计划三主三从集群搭建。
2)保证每个服务器事先已经安装好redis5.0,配置其中的配置文件redis.conf
找到上面的配置,上面三个配置就是集群的开启配置:
cluster-enabled:代表是否开启集群,yes表示开启
cluster-config-file:集群的配置文件,可以自主改名,我们只需要放开注释即可
cluster-node-timeout:该配置表示主节点挂了多少毫秒进行主从更迭
另外,还需要注意如下配置:
上面表示开启AOF模式保证数据的持久化。
以及保护模式设置为no来保证外网访问。需要安全性考虑请使用bind绑定ip
3)将每个redis服务器做第二步的配置后启动全部redis服务器
3.启动集群
注意:redis5.0之前的版本需要ruby环境以及如下命令启动集群,因为我使用的是redis5.0,所以弹出警告说该命令不久后就过时了。
我们根据提示使用新版本的方式来进行集群的创建:
命令如下:
./redis-cli --cluster create 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 192.168.1.106:6379 192.168.1.107:6379 192.168.1.108:6379 --cluster-replicas 1
我这里将我六台redis服务器和其端口号放入命令之中,最后一个1表示主节点和从节点的比例,1就表示主和从一样多,以此类推,该配置就表明我们进行的是三主三从的redis集群搭建。
我们可以通过如下的命令来获取搭建集群命令的参数设置。
我这里直接输入上面给出的命令创建集群了。
出现上述的结果就表示你的集群创建成功了。
其中下面的部分讲述了主节点和从节点的布局:
4.测试集群
1)使用命令登入某个节点并检查集群信息
使用命令登入集群节点,比如103
打入命令查询集群信息:
打入命令查询节点信息:
向集群中添加string类型数据:
由于主节点可写可读,所以集群模式下自动的将数据均衡的进行分配,达到了分布式的要求。
我们可以通过get命令来进行获取操作:
试试从节点能不能拿得到呢?
可以发现,我们的从节点107也可以拿得到数据。
我们尝试将主节点103宕机!!!
稍微等待一会儿之后。。。。
我们可以清晰的发现我们的103主机已经宕机了!它的从节点106升级为了主机master
我们再次启动103机!模拟103机已经修复。。。
这个时候我们发现,103机已经成为了106机的从机了!!!