Redis学习笔记四 集群(cluster)

CAP

CAP理论,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),不能同时成立

C:一致性,一致性指的是所有节点在同一时间的数据完全一致

A:可用性,可用性指服务一直可用,而且是正常响应时间

P:分区容错性,分区容错性指在遇到某节点或网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务

Redis集群实现AP

分区

分区方式分为哈希分区,顺序分区,redis使用的就是哈希分区

哈希分区:离散性好,数据分布与业务无关,无法顺序访问。

顺序分区:离散性易倾斜,数据分布与业务相关,可顺序访问。

常用哈希分区方式

节点取余分区,使用特定的数据,如Redis的建或用户ID,再根据节点数量N使用公司 hash(key)%N计算出哈希值 ,用于决定数据映射到拿一个节点,存在节点数量变化时如扩容或收缩节点数据节点性需要重新计算

可以用于数据库的分库分表规则,例如:订单表数据过多时我们可以根据商家来分表,这时候我们不能一个商家一个表,我们可以将根据商家ID来取余,假如商家ID主键是整型自增ID ,商家ID是随机数 n,那么n%10就是0~9中的一个数。无论n是多大的数,取余算出来的表都在10张表范围内

//java 取余公式
a%b=a-(a/b)*b

一致性的哈希分区

一致性哈希分区 每个节点分配一个token,范围在0~2的32次方 ,这个构成一个哈希环 然后顺时针找到一个大于等于该哈希值的token节点

虚拟槽分区

Redis Cluster 就是采用虚拟槽分区,虚拟槽被分为16384个槽,每个节点负责维护一部分槽(建议最大节点约为1000个节点) 

例如分为5个节点,即可分为如下:

node-1,0-3276 

node-2,3277-6553

node-3,6554-9830

node-4,9831-13107 

node-5,13018-16383 

系列链接

Redis学习笔记一 入门基础_记性差的程序员的博客-CSDN博客

Redis学习笔记二 主从复制_记性差的程序员的博客-CSDN博客

Redis学习笔记三 哨兵(Sentinel)_记性差的程序员的博客-CSDN博客

Redis学习笔记五 运用篇_记性差的程序员的博客-CSDN博客

参考

《Redis开发与运营》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值