redis集群搭建

Redis 三种集群模式

  1. 主从复制模式
  2. 哨兵模式
  3. Cluster 集群模式

主从复制模式特点

  1. 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库。
  2. 从数据库一般都是只读的,并且接收主数据库同步过来的数据。
  3. 一个master可以拥有多个slave,但是一个slave只能对应一个master。
  4. slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来。
  5. master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务。
  6. master挂了以后,不会在slave节点中重新选一个master。

sentinel哨兵模式特点

1.哨兵模式是建立在主从模式的基础上,如果只有一个Redis节点,sentinel就没有任何意义
2.当master挂了以后,哨兵会在slave中选择一个做为master,并修改它们的配置文件,其他slave的配置文件也会被修改,比如slaveof属性会指向新的master
3.当master重新启动后,它将不再是master而是做为slave接收新的master的同步数据
4. 哨兵因为也是一个进程有挂掉的可能,所以哨兵也会启动多个形成一个哨兵集群
5.多哨兵配置的时候,哨兵之间也会自动监控。
6.当主从模式配置密码时,哨兵也会同步将配置信息修改到配置文件中,不需要担心
7.一个哨兵或哨兵集群可以管理多个主从Redis,多个哨兵也可以监控同一个redis
8. 哨兵最好不要和Redis部署在同一台机器,不然Redis的服务器挂了以后,哨兵也挂了

Cluster 集群模式特点

  哨兵模式基本可以满足一般生产的需求,具备高可用性。但是当数据量过大到
一台服务器存放不下的情况时,主从模式或哨兵模式就不能满足需求了,这个
时候需要对存储的数据进行分片,将数据存储到多个Redis实例中。cluster模
式的出现就是为了解决单机Redis容量有限的问题,将Redis的数据根据一定的
规则分配到多台机器。 

Cluster集群模式搭建(6个最小的集群,3个主3个从)

  • 由于redis集群需要使用ruby命令,需要先安装ruby

    yum install ruby -y #安装rubyan脚本

    yum install rubygems -y #安装ruby包管理器

    #先上传redis-3.0.0.gem的压缩包到服务器,切换到/usr/local/tmp

    gem install redis-3.0.0.gem #安装redis和ruby接口

  • 创建一个文件夹redis-cluster,在其下面分别创建6个子文件夹
    1:在/usr/local目录下创建redis-cluster文件夹
    cd /usr/local
    mkdir redis-cluster
    2:进入到/usr/local/redis-cluster目录下,创建7001-7006文件夹
    mkdir 7001 mkdir 7002 mkdir 7003
    mkdir 7004 mkdir 7005 mkdir 7006

  • 将之前安装的redis的/usr/local/redis/etc/redis.conf配置文件复制到7001-7006文件夹下
    cp /usr/local/redis/etc/redis.conf /usr/local/redis-cluster/7001

  • 对7001下的redis.conf配置文件进行修改
    修改7001下的redis.conf配置文件内容:
    vim redis.conf
    1: redis服务后台启动
    daemonize yes
    2: *修改每一台机器的端口号 (44行)
    port 7001
    3: 绑定当前机器的ip (必须设置,深坑勿入) 64行
    bind ip
    4: *指定数据文件存储分位置 (必须设置,深坑勿入) 187行
    dir /usr/local/redis-cluster/7001/
    5: aof持久化机制 504行
    appendonly yes
    6: 启动集群模式 632行
    cluster-enabled yes
    7: 每一个服务器都对应一个conf文件, 640行
    整个服务器就会知道别的节点,将自己的配置告诉集群。
    (这里700
    最好和端口对应上)
    cluster-config-file nodes-7001.conf
    8: 集群的有效时间ms 646行
    cluster-node-timeout 15000
    9: 如果有密码,去掉密码 注释 # requirepass
    提示:7002-7006的配置文件参考7001,修改对应的数字即可。

  • 将7001下的redis.conf配置文件分别复制到7002~7006文件夹下,编辑配置文件,修改对应的数字即可

  • 启动6个redis实例,并检查是否启动成功
    1.启动redis实例
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7003/redis.conf
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7004/redis.conf
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7005/redis.conf
    /usr/local/redis/bin/redis-server /usr/local/redis-cluster/7006/redis.conf

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

首先到redis/src安装目录下,然后执行redis-trib.rb命令,操作集群脚本
cd /usr/local/redis/src
//执行redis-trib.rb命令: 1:代表主/从的比值,前面是主,后是从
./redis-trib.rb create --replicas
192.168.206.133:7001 192.168.206.133:7002
192.168.206.133:7003 192.168.206.133:7004
192.168.206.133:7005 192.168.206.133:7006

到此集群环境搭建完成,进行验证:

  1 .连接任意一个客户端即可: -c 集群模式 -p:端口号 -h:IP地址         				切换到/usr/local/redis/bin目录下 
     ./redis-cli  -c  -h  192.168.206.133  -p  700*
  2. 查看信息验证
     cluster info  查看集群信息
     cluster nodes 查看节点信息
  3. 进行数据验证  set  get
     注意:并不是你往7001操作数据,数据就一定存储到7001中。
     获取7001的数据,可能来自于其他的节点。    
  4. 关闭集群,只能使用命令,逐个进行关闭
     /usr/local/redis/bin/redis-cli -c -h 192.168.206.133 -p 700*  shutdown
     Kill 进程号

(补充)当出现集群无法启动时 删除7001-7006文件夹下的所有数据文件aof,rdb,conf。再次执行6-8步。
谢谢大家的阅读!
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_46612124

点个星星支持一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值