Redis 集群概述
什么是Redis集群?
Redis集群是Redis提供的一种分布式解决方案,允许你将数据分布在多个Redis节点上,从而实现高可用性和横向扩展。通过集群,Redis可以处理更大的数据集和更高的并发请求,同时避免单点故障。
备注
Redis集群是Redis 3.0版本引入的功能,旨在解决单机Redis的性能瓶颈和可用性问题。
Redis 集群的核心概念
1. 数据分片(Sharding)
Redis集群通过数据分片将数据分布到多个节点上。每个节点负责存储一部分数据,这些数据通过哈希槽(Hash Slot)进行管理。Redis集群中共有16384个哈希槽,每个键通过CRC16算 法计算出一个哈希值,然后映射到对应的哈希槽中。
2. 主从复制(Master-Slave Replication)
每个主节点(Master)可以有一个或多个从节点(Slave)。从节点会复制主节点的数据,并在主节点故障时接管其工作,确保数据的高可用性。
3. 故障转移(Failover)
当主节点发生故障时,集群会自动将从节点提升为新的主节点,确保服务的连续性。这个过程称为故障转移。
Redis 集群的工作原理
1. 集群搭建
要搭建一个Redis集群,至少需要3个主节点和3个从节点。每个主节点负责一部分哈希槽,而从节点则作为备份。
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
2. 数据读写
客户端可以通过任意节点访问集群。如果请求的键不在当前节点上,节点会返回一个重定向消息,告诉客户端正确的节点地址。
127.0.0.1:7001> SET user:123 "John Doe"
-> Redirected to slot [5461] located at 127.0.0.1:7003
OK
3. 集群状态检查
你可以使用以下命令检查集群的状态:
redis-cli --cluster check 127.0.0.1:7001