redis缓存高可用集群的搭建

高可用集群:

  redis集群是一个由多个主从节点群组成的分布式服务群,它具有复制、高可用和分片特性。

  redis集群不需要sentine哨兵也能完成节点移除和故障转移的功能 。需要将每个节点设置成

  集群模式,这种集群模式没有中心节点,可以水平扩展,据官方文档称可以线性扩展到1000

  个节点。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单

  ------------------------------------------------------------------------------------------------------------------------

  redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再

  搭建一个slave节点,总共6个redis节点,由于节点数较多,这里采用在一台机器上创建6个redis

  实例,并将这6个redis实例配置成集群模式,所以这里搭建的是伪集群模式,当然真正的分布式

  集群配置方法几乎一样。

第一步:在/usr/local下创建文件夹redis-cluster,然后在其下面分别创建6个文件夹:

  - mkkir -p /usr/local/redis-cluster

  - mkdir 8010、mkdir 8011、mkdir 8012、mkdir 8013、mkdir 8014、mkdir 8015

第二步:把之前的redis.conf配置文件copy到8010下,修改如下内容:

  - daemonize yes

  - prot 8010  (分别对每个机器的端口号进行设置)

  - bind 192.168.0.60 (必须绑定当前机器的ip,这里方便redis集群定位机器,不绑定可能会出现循环查找集群节点机器的情况)

  - dir /usr/local/redis-cluster/8010/ (指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)

  - cluster-enabled yes (启动集群模式)

  - cluster-config-file nodes-8010.conf (这里801x最好和port对应上)

  - cluster-node-timeout 5000  (如其中一个节点的心跳停止超过5秒中,就会被集群踢出去)

  - appendonly yes  (日志模式打开)

第三步:把修改后的配置文件,分别copy到各个文件,注意每个文件要修改2、4、6项里的端口号,可以用此批量替换

  - %s/原字符串/新字符串/g  (所有文本中全局替换)

第四步:由于redis集群需要使用ruby命令,拟我们需要安装ruby

  - yum install ruby

  - yum install rubygems

  - gem install redis --version 3.0.0 (安装redis和ruby的接口)

第五步:分别启动6个redis实例,然后检查是否启动成功

  - /usr/local/redis/bin/redis-server /usr/local/redis/redis-cluster/801*/redis.conf    启动服务

  - ps -ef | grep redis   查看是否启动成功

第六步:在redis的安装目录下执行执行redis-trib.rb命令创建整个redis集群

  - cd /usr/local/redis/src

  - ./redis-trib.rb create --replicas 1 192.168.26.136:8010  192.168.26.136:8011 192.168.26.136:8012 192.168.26.136:8013 192.168.26.136:8014 192.168.26.136:8015

    - 注:上面的红色1代表着 总主服务器数量和总从服务器数量的一个比值,后面跟的ip和端口 内部有自己的规则对应主从配合(比如:前三个为主,后三个为从,且第1个和第4个对应主从关系,第2个和第5个对应....)

第七步:验证集群

  - 连接任意一个客户端即可:./redis-cli -c -h -p (-c 表示集群模式,指定ip地址和端口号)

    - 如:/usr/local/redis/bin/redis-cli -c -h 192.168.26.136 -p 801*

  - 进行验证:cluster info (查看集群信息)、cluster nodes (查看节点列表)

  - 进行数据操作验证

  - 关闭集群则需要逐个进行关闭,使用命令:

    - /usr/local/redis/bin/redis-cli -c -h 192.168.126.136 -p 801* shutdown

 

PS:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境

  redis-cli 来连接每个节点 

    使用命令  flushdb

          cluster reset

 

posted @ 2020-11-14 12:25  高汤  阅读(186)  评论(0)    收藏  举报