redis集群介绍
1. 节点(Node):
• Redis集群中的单个Redis服务器实例。每个节点都运行一个Redis服务器进程,并维护自己的数据。
2. 分片(Sharding):
• 将数据集分割成多个部分,并分布到不同的节点上。Redis集群使用哈希分片机制,根据键的哈希值来决定数据应该存储在哪个节点上。
3. 哈希槽(Hash Slot):
• Redis集群将整个键空间分成16384个哈希槽。每个节点负责一部分哈希槽,并且这些哈希槽在节点之间分布。
4. 主节点(Master Node):
• 负责处理客户端请求,并存储数据的节点。在Redis集群中,每个哈希槽都分配给一个主节点。
5. 从节点(Slave Node):
• 主节点的副本,用于数据冗余和故障转移。从节点会复制主节点的数据,并在主节点不可用时接管其职责。
6. 故障转移(Failover):
• 当主节点不可用时,其从节点会自动升级为主节点,并接管其哈希槽的过程。Redis集群使用自动故障转移机制来确保高可用性。
7. 集群总线(Cluster Bus):
• 一个用于节点之间通信的专用通道。节点通过集群总线来交换集群状态信息、配置更新和故障检测消息。
8. 集群槽配置(Cluster Slot Configuration):
• 描述了哈希槽与节点之间的映射关系。每个节点都知道集群的槽配置,并据此来决定如何处理客户端请求。
9. 重定向(Redirection):
• 当客户端向错误的节点发送请求时,该节点会向客户端发送一个重定向命令,指示客户端将请求发送到正确的节点。
10. ASK 重定向:
• 在数据迁移期间,如果客户端请求的数据正在从一个节点迁移到另一个节点,则原始节点会向客户端发送一个ASK重定向命令,指示客户端从目标节点获取数据。
11. 一致性哈希(Consistent Hashing):
• Redis集群使用一致性哈希算法来分配哈希槽,以确保在添加或删除节点时,只有少数哈希槽需要重新分配。
12. 集群状态(Cluster State):
• 描述了集群的当前配置和状态,包括节点的位置、哈希槽的分配、故障转移的状态等。
13. 集群节点文件(Cluster Node File):
• 存储在节点上的文件,用于持久化节点的配置和状态信息。当节点重新启动时,它会读取这个文件来恢复集群状态。