分布式缓存-Redis分片集群

主从和哨兵 可以解决高可用、高并发读的问题。但是依旧有两个问题没有解决:

1、海量数据存贮

2、高并发写

分片集群:

分片集群特征:

1、集群中有多个master,每个master保存不同数据

2、每个master都可以有多个slave节点

3、master之间通过ping检测彼此健康状态

散列插槽:

Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看集群信息时就能看到:

数据key不是与master节点绑定,而是与插槽绑定。redis根据key的有效部分计算插槽值,分两种情况:

1、key中包含"{}",且{}中至少包括一个字符,则{}中的部分就是有效部分

2、key中不包含{},整个key都是有效部分

利用CRC16算法得到hash值,对16384取余,得到的结果就是slot值。再根据slot值判断存贮在哪个master节点上。

如何保证同类型数据固定存储在同一个redis实例上?

同一类数据使用相同的有效部分,比如key都以{typeId}作为前缀

集群伸缩:

即添加移除节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值