Codis 2.0 发布,Redis 集群解决方案

oschina
 oschina
发布于 2015年08月05日
收藏 110

Codis 2.0 发布,主要改进:

  • 重新设计 request dispatcher,现在 pipeline 和 mget/mset requests 都比之前快很多!

  • Codis-server (forked redis) 升级至 2.8.21,包含上流 Redis 的 bug 修复,还有优化,比如更低的内存消耗和更快的迁移。

  • 优化 zk 连接,现在更稳定

  • 迁移(和自动均衡)任务现在保存在 zk,仪表盘重启的时候将会继续。

  • 支持 Redis AUTH 命令

  • 更多配置选项,请看 sample/config.ini

更多改进内容请看发行说明

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.

Codis 由四部分组成:

  • Codis Proxy   (codis-proxy)

  • Codis Manager (codis-config)

  • Codis Redis   (codis-server)

  • ZooKeeper

codis-proxy 是客户端连接的 Redis 代理服务, codis-proxy 本身实现了 Redis 协议, 表现得和一个原生的 Redis 没什么区别 (就像 Twemproxy), 对于一个业务来说, 可以部署多个 codis-proxy, codis-proxy 本身是无状态的.

codis-config 是 Codis 的管理工具, 支持包括, 添加/删除 Redis 节点, 添加/删除 Proxy 节点, 发起数据迁移等操作. codis-config 本身还自带了一个 http server, 会启动一个 dashboard, 用户可以直接在浏览器上观察 Codis 集群的运行状态.

codis-server 是 Codis 项目维护的一个 Redis 分支, 基于 2.8.13 开发, 加入了 slot 的支持和原子的数据迁移指令. Codis 上层的 codis-proxy 和 codis-config 只能和这个版本的 Redis 交互才能正常运行.

Codis 依赖 ZooKeeper 来存放数据路由表和 codis-proxy 节点的元信息, codis-config 发起的命令都会通过 ZooKeeper 同步到各个存活的 codis-proxy.

Codis 支持按照 Namespace 区分不同的产品, 拥有不同的 product name 的产品, 各项配置都不会冲突.

目前 Codis 已经是稳定阶段,目前豌豆荚已经在使用该系统。

架构:

Snapshot1

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Codis 2.0 发布,Redis 集群解决方案
加载中

最新评论(15

应念
应念
无法重启啊
应念
应念
新版本 kill dashboard之后,不清除zk数据貌似有问题啊,测试好几次了 ,求指导
200p
200p
已经2.02了
200p
200p
zk占内存...
小B
小B
这个架构,大多数1.2线的互联网公司都差不多,
南湖船老大
南湖船老大
还需要zk,有点复杂,很容易让人怯步啊
felayman
felayman
用到了生产环境才知道有很多问题解决不了
felayman
felayman
好多原生命令不支持,部署复杂程度太大
q
qzlaobi

引用来自“心中彩虹”的评论

部署好复杂!目前还是老老实实用twemproxy!

建议作者:可以搞一个docker!
别的不说~codis部署比twemproxy简单百倍
OpenIoT
OpenIoT
部署好复杂!目前还是老老实实用twemproxy!

建议作者:可以搞一个docker!
返回顶部
顶部