Redis集群之数据分片

Redis集群之数据分片

一、redis5.0简介
2018年十月Redis发布了稳定版本的5.0版本,推出了各种新特性,其中一点是放弃Ruby的集群方式,
改为使用C语言编写的redis-cli的方式,使集群的构建方式复杂度大大降低。 、

本章目标:在一台Linux服务器上搭建有6个节点(3主3从)的Redis集群。(因为redis选举机制原因,集群最低6个节点,不然无法创建)

主从集群(master-slave):
主从结构的redis由主节点负责读写操作,从节点负责操作;
在这里插入图片描述
简单的主从集群有个问题,就是主节点挂了之后,无法重新选举新的节点作为主节点进行写操作,导致服务不可用。
因此,需要一种机制对主节点挂了的集群进行监控,并且重新选举主节点,这就是哨兵的作用。

哨兵主从集群(master-slave-sentinel)

在这里插入图片描述
由哨兵来检测主节点是否死亡,每个哨兵检测都会返回true或者false,以少数服从多数的原则来判断主节点是否死亡,如果判定死亡,从节点就会顶上。
缺点
如果每个从节点配置都不一样,例如salve1只有20g存储空间,而salve2有10g,主从节点数据都是同步的,如果数据超过最低配置,他会以最低配置(salve2)的来存储,不会再继续加数据,从而浪费了其他节点的空间。

数据分片(redis-cluster)
尽管可以使用哨兵主从集群实现可用性保证,但是这种实现方式每个节点的数据都是全量复制,数据存放量存在着局限性,受限于内存最小的节点,因此考虑采用数据分片的方式,来实现存储,这个就是redis-cluster
redis-cluster的优势:

  • 官方推荐,毋庸置疑。

  • 去中心化,集群最大可增加1000个节点,性能随节点增加而线性扩展。

  • 管理方便,后续可自行增加或摘除节点,移动分槽等等。

  • 简单,易上手。
    在这里插入图片描述
    简单说一下原理
    redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的。
    redis cluster 为了保证数据的高可用性,加入了主从模式,一个主节点对应一个或多个从节点。
    从节点则是从主节点拉取数据备份,当这个主节点挂掉后,就会有这个从节点选取一个来充当主节点,从而保证集群不会挂掉。
    每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。

    Redis集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。
    redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot
    然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384

二、redis-cluster(数据分片)集群步骤
1)安装环境为CentOS7版
这里不做申明
2)预安装软件

yum install gcc        //#避免待会儿make时由于没安装gcc失败,提前安装gcc
yum install make       //#避免make无法执行

注1:可通过如下两种方式检查软件是否已安装

gcc -v
make -v

3)下载redis 5.0–粗略讲解
创建redis安装目录
安装两种方式:
在线下载

wget http://download.redis.io/releases/redis-5.0.0.tar.gz 

离线上传
将预先下载好的redis-5.0.0.jar上传到安装目录下

解压redis

tar -</
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值