【redis】分片集群、数据读写规则

2 阅读1分钟

提问:redis的主从和哨兵可以解决高并发读和高可用问题,但高并发写和海量数据存储问题怎么处理?

回答:使用分片集群可以处理上述问题,分片集群的特征:
·集群中有多个master,每个master保存不同的数据
·每个master都可以有多个slave节点
·master之间可以通过ping监测彼此健康状态
·客户端请求可以访问集群任意节点,最终都会被转发到正确节点

提问:redis的分片集群中的数据是怎么存储和读取?

回答:
·redis分片集群引入哈希槽的概念,redis集群中有16384个哈希槽
·将16384个哈希槽分配到不同实例中
·读写数据:根据key的有效部分计算hash值,对16384取余(有效部分:如果key前面有大括号,大括号内就是有效部分,如果没有,则以key本身做有效部分)余数作为插槽,寻找插槽所在实例