自学内容网 自学内容网

分布式缓存-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}作为前缀

集群伸缩:

即添加移除节点


原文地址:https://blog.csdn.net/weixin_47786582/article/details/140492226

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!