redis集群之Codis( 六 )

Codis 的优点
  Codis 在设计上相比 Redis Cluster 官方集群方案要简单很多 , 因为它将分布式的问题交给了第三方 zk/etcd 去负责 , 自己就省去了复杂的分布式一致性代码的编写维护工作 。 而Redis Cluster 的内部实现非常复杂 , 它为了实现去中心化 , 混合使用了复杂的 Raft 和Gossip 协议 , 还有大量的需要调优的配置参数 , 当集群出现故障时 , 维护人员往往不知道从何处着手 。

MGET 指令的操作过程


  mget 指令用于批量获取多个 key 的值 , 这些 key 可能会分布在多个 Redis 实例中 。 Codis 的策略是将 key 按照所分配的实例打散分组 , 然后依次对每个实例调用 mget 方法 , 最后将结果汇总为一个 , 再返回给客户端 。 架构变迁Codis 作为非官方 Redis 集群方案 , 近几年来它的结构一直在不断变化 , 一方面当官方的 Redis 有变化的时候它要实时去跟进 , 另一方面它作为 Redis Cluster 的竞争方案之一 , 它还得持续提高自己的竞争力 , 给自己增加更多的官方集群所没有的便捷功能 。 比如 Codis 有个特色的地方在于强大的 Dashboard 功能 , 能够便捷地对 Redis 集群进行管理 。 这是 Redis 官方所欠缺的 。 另外 Codis 还开发了一个 Codis-fe(federation 联邦) 工具 , 可以同时对多个 Codis 集群进行管理 。 在大型企业 , Codis 集群往往会有几十个 , 有这样一个便捷的联邦工具可以降低不少运维成本 。

推荐阅读