部署多个实例以分摊写数据压力,以支撑更大的写流量,就是分片集群的原理。分片集群的架构模型如下:
分片规则:
①每个节点各自存储一部分数据,所有节点数据之和等于全量数据。
②对于不同的key将路由到固定的实例上进行读写操作。
分片集群根据路由规则的位置分为两类:
- 客户端分片:key的路由规则放在客户端做,客户端需要维护路由规则(路由规则写在业务代码中),可使用Redis Cluster(路由逻辑封装在该SDK中,内置哨兵逻辑)。
- 服务端分片:在客户端和服务端之间增加一个【中间代理层】,即Proxy,数据的路由规则由Proxy层维护。Proxy会将请求根据路由规则转发到对应的redis节点上,在实例不足以支撑流量时可以横向扩容增加新的Redis实例提升性能。目前开源的Redis分片集群方案如Twemproxy、Codis。
以上总结参考:https://mp.weixin.qq.com/s/SZRYscFCYMZzobpetBU91w