Redis项目实战(二)---Redis集群原理
一、 Redis官方推荐集群方案:Redis Cluster 注:适用于redis3.0以后版本(官方集群版本); redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点。 简介: 1)设计上使用了去中心化,去中间件,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。 2)哈希槽设计,使用 哈希槽 (hash slot) 的方式来分配数据,redis cluster 默认分配了 16384 个slot,每set一个key 时,会用 CRC16 算法来取模得到所属的 slot ,然后将这个key 分到哈希槽区间的节点上,即: CRC16(key) % 16384 。 优点:去中心化,无中心节点 (1)数据按照 slot 存储分布在多个 Redis 实例上,能够平滑的进行扩容/缩容节点;由于从一个节点将哈希槽移动到另一个节点并不会停止服务,所以无论添加删除或者改变某个节点的哈希槽的数量都不会造成集群不可用的状态。 (2)自动故障转移(节点之间通过 Gossip 协议交换状态信息,进行投票机制完成 Slave 到 Master 角色的提升),提高了系统的可扩展性和高可用性。 缺点:严重依赖外部 Redis-Trib