Redis Cluster集群
Redis集群是Redis提供的分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。
节点通过握手将其它节点添加到自己所在的集群。
集群中的16384个槽可以分别指派给集群中的各个节点,每个节点都会记录哪些槽指派给了具体哪个节点。
节点在收到客户端命令请求时,会先检查这个命令请求处理的键所在的槽是否由自己负责,如果不是的话,节点将向客户端返回一个moved错误,moved错误携带的信息可以指引客户端转向正在负责相关槽的节点。
对Redis集群重新分片工作是由redis-trib负责执行的,重新分片的关键时将属于某个槽的所有键值对从一个节点转移到另一个节点。
如果节点A正在迁移槽i至节点B,那么当节点A没能在自己的数据库中找到命令指定的数据库键时,节点A会向客户端返回一个ASK错误,指引客户端到节点B继续查找指定的数据库键。
集群里的从节点用于复制主节点,不处理命令请求,并在主节点下线时,通过故障转移操作后,升级为新的主节点处理命令请求。
客户端与redis节点直连,不需要中间代理层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。
节点的fail是通过集群中超过半数的节点检测失效时才生效。
不支持多数据空间。单机下的Redis可以支持16个数据库,集群模式下只能使用一个数据库空间,即db0.
复制结构值支持一层,从节点只能复制主节点,不支持嵌套复制结构
Key批量操作支持有限。如mset、mget,目前只支持具有相同slot值的key执行批量操作
key事务操作支持有限。同理只支持多key在统一节点上的事务操作,当多个key分布在不同的节点上时无法使用事务功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY