redis_02集群

Redis 集群

一、简介

​ Redis在3.0版本前只支持单例模式,虽然支持主从模式部署来解决单点故障,但是现在互联网企业动辄几百G的数据,完全无法满足业务的需求,所以,Redis在3.0版本之后推出了集群模式。

优点

负载压力,系统高可用性

二、集群搭建
1、配置集群服务器
  • 至少需要6个redis服务器(三主三从),每台服务器在配置中增加
cluster-enabled yes   #开启集群支持

cluster-config-file nodes.conf   #记录节点信息
  • 以各自的配置开启所有服务器
redis-server 7001/redis.conf
redis-server 7002/redis.conf
redis-server 7003/redis.conf
redis-server 7004/redis.conf
redis-server 7005/redis.conf
redis-server 7006/redis.conf
2、创建redis集群
1、安装依赖
  • 安装ruby

    • tar -zxvf ruby-2.4.2.tar.gz
    • cd到解压目录
    • ./configure --prefix=/usr/local/ruby
    • make && make install
  • 安装gem(gem是ruby的一个工具包)

    • yum install rubygems
      • 此时检测ruby -v 得到的是ruby1.8.7版本
      • 需要将/usr/bin/ruby删除掉(rm /usr/bin/ruby),再讲2.4.2版本的ruby发送到/usr/bin/ruby
      • ln -s /usr/local/ruby/bin/ruby /usr/bin/ruby链接
      • 在检查ruby的版本 ruby -v 出现2.4.2版本的ruby
  • 安装redis接口

    • gem install redis

    • $ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
      $ gem sources -l
      https://gems.ruby-china.com
      # 确保只有 gems.ruby-china.com
      
2、创建Redis集群

​ 在redis的src目录下/usr/local/redis-3.0.7/src执行:

 					1是1:1
 ip1:port1 ip2:port2 ... ipn:portn   
./redis-trib.rb create --replicas 1 192.168.134.124:7001 192.168.134.124:7002 192.168.134.124:7003 192.168.134.124:7004 192.168.134.124:7005 192.168.134.124:7006 

–replicas 1表示主从复制比例为1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务器,以及slot的大小,因为Redis集群中有且仅有16384个slot,默认情况会给我们平均分配,后续增减节点也可以重新分配。

查看集群信息:redis-trib.rb check 192.168.62.131:7001集群的任意一个ip

至此,集群搭建完毕,六个节点,三主三从,只有主节点才拥有槽,并对完提供读写数据服务。注意至少三个主节点才可以搭建集群,为每个猪至少分配一个从节点,所以至少需要六个

3、槽
  • redis cluster默认分配了16384个slot,所有主redis服务器,大概均分所有的槽
  • 存/取值的时候,redis会根据key,计算一个0-16383之间的数字,通过得到的值,决定使用哪个redis主服务器来负责本次访问

Redis集群会把所有的数据存在一个master节点,然后这个master和其对应的slave之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的master节点获取数据。只有当一个master挂掉之后,才会启动一个对应的slave节点,当master。

注意:必须需要三个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点小于总结点数的一半时,整个集群就无法提供服务。

4、集群说明
  • 集群搭建后
    • 性能的进一步提升,可以在单位时间内,吞吐更多的请求
    • 数据的存储节点,具有高可用性(集群有好的容错机制)
  • 集群容错
    • 所有的槽可以被覆盖时,集群正常运行
    • 若16384槽,不能被完全覆盖,则集群宕机
三、集群节点操作
1、从节点操作
1添加从节点
									 # 主节点id
./redis-trib.rb add-node --slave --master-id 4032891b648e76b2975e5bc701e9c8a52ad6f3dd 192.168.134.124:7000 192.168.134.124:7006         # 注意:加新节点之前 要清楚新节点中数据
#新节点的ip:port      #集群已存在的节点的ip:port
2、删除从节点
					#集群中已存在的节点ip:port  #要删除的节点的id
./redis-trib.rb del-node 192.168.134.124:7003  875e192f647ccf06ce6b1d92e15df31a2286dbbf
2、主节点操作
1、添加主节点
./redis-trib.rb add-node 192.168.134.124:7000 192.168.134.124:7006
                         #新增加的主节点         #一个已存在的节点

将7006添加到7001所在集群中,成为一个主节点,但此时它不持有任何槽,需要重新分片

2、重新分片
 ./redis-trib.rb reshard 192.168.134.124:7000

分出去的槽,从之前拥有操作的所有主节点中获取。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值