Codis
Codis是一个分布式Redis解决方案,它允许上层应用像使用单机Redis一样使用Codis,而底层会处理请求的转发和不停机的数据迁移等工作。以下是Codis的一些关键特性和组件:
1. 集群管理:Codis-Dashboard主要负责集群元数据的管理,包括Group/SlotMapping/Proxy和Sentinel的信息。
2. 请求处理:Codis-Proxy作为客户端连接的Redis代理服务,实现了Redis协议,对于不支持的命令列表之外的命令,表现得和原生Redis没有区别。
3. 扩/缩容:Codis支持在线数据迁移、节点扩容缩容、故障自动恢复等功能。
4. 组件:
Codis Proxy(codis-proxy): 负责对请求的读写进行转发。
Codis Dashboard: 统一的控制中心,整合了数据转发规则、故障自动恢复、数据在线迁移、节点扩容缩容、自动化运维API等功能
Codis Redis(codis-server): 基于Redis3.2.8版本二次开发的Redis Server,增加了异步数据迁移功能。
Codis FE : 管理多个集群的UI界面。
Codis HA: 为集群提供高可用性,依赖Codis-Dashbaord实例,自动抓取集群各个组件的状态,并在需要时通过Codis-Dashboard完成主从切换。
存储:Codis提供了Namespace概念,不同集群的会按照不同product name进行组织,目前仅提供了Zookeeper和Etcd两种实现,但是提供了抽象的interface可自行扩展。
Codis的优势:可靠性、支持扩容、数据迁移方式的灵活性以及客户端兼容性。它特别适合需要高可靠性、频繁数据迁移和希望保持客户端兼容性的场景。