认识分片集群
主从和哨兵看可以解决高可用、高并发读的问题。但是依旧是解决不了下面的两个问题:
1、海量数据存储问题
2、高并发写的问题
Redis分片集群是一种分布式系统,用于将Redis的数据分布在多个Redis节点上。这种集群通过将数据分成多个部分,并将每个部分存储在不同的节点上,可以实现Redis的高可用性和高性能。
分片集群主要着眼于高扩展性,它由多个Redis实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。这样可以处理大量数据,解决海量数据存储和高并发写的问题。
在Redis分片集群中,通常会有多个master节点,每个master保存不同数据。每个master还可以拥有多个slave节点,并且master之间通过ping监测彼此的健康状态。客户端请求可以访问集群中的任意节点,最终都会被正确地转发到相应的节点。
这种分片集群的原理主要是通过“哈希分片”来实现的。哈希分片使用一个称为键的字符串作为输入,并根据键的哈希值来确定该键所属的节点。这样可以保证相同键的请求始终路由到同一个节点上,从而实现数据的分区和负载均衡。
分片集群存储数据
在Redis中,引入了一个哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分哈希槽
下图是Redis存取数据的底层流程图
另外&#