Codis 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Codis 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Codis 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Codis 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Codis 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 C/C++ Google Go
操作系统 Linux
软件类型 开源软件
开源组织 豌豆荚
地区 国产
提 交 者 红薯
适用人群 未知
收录时间 2014-11-09

软件简介

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

特性:

  • 自动平衡

  • 使用非常简单

  • 图形化的面板和管理工具

  • 支持绝大多数 Redis 命令,完全兼容 twemproxy

  • 支持 Redis 原生客户端

  • 安全而且透明的数据移植,可根据需要轻松添加和删除节点

  • 提供命令行接口

  • RESTful APIs

安装:

  • Install go

  • go get github.com/wandoulabs/codis

  • cd codis

  • ./bootstrap.sh

  • make gotest

  • cd sample

  • follow instructions in usage.md

界面截图:

Dashboardmain

Migratemigrate

Slotsslots

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (19)

加载中

引用来自“xiaour”的评论

竟然连keys命令都不支持,辣鸡

引用来自“Hello_WOD”的评论

不支持keys? 呵呵呵 你这么说低级程序员无误了
还是你高级,发布订阅支持吗?Keys禁用是为了防止服务雪崩这个我不是不知道,但是你一个代理你为啥不让支持啊?你又不能代表所有生产环境。来彰显自己优越感么?
2019/02/27 10:25
回复
举报

引用来自“xiaour”的评论

竟然连keys命令都不支持,辣鸡
不支持keys? 呵呵呵 你这么说低级程序员无误了
2019/02/25 14:19
回复
举报
scan都不支持
2020/01/03 16:41
回复
举报
竟然连keys命令都不支持,辣鸡
2018/12/20 09:06
回复
举报
找不到codis和spring整合的代码,新手不会弄啊
2017/06/05 17:31
回复
举报
最近使用codis,做session。报config和PUBLISH不允许访问。ERR handle request, command 'PUBLISH' is not allowed。求大神解决。
2017/05/08 14:49
回复
举报
欢迎加入343595434codis技术交流群,这里有codis作者以及各个codis使用大神为你答疑解惑
2017/02/14 13:13
回复
举报
codis-proxy通过硬件负载(DR)后,业务连接时,有的时候很慢。有的时候很快!在对于proxy的负载检查是不是有问题?
2017/01/12 17:02
回复
举报
打分: 力荐
公司再用,感觉很好!
2016/12/26 12:57
回复
举报
好东西!得好好研究一下! Codis
2014/11/09 08:23
回复
举报
比较叼的感觉,797979 Codis
2014/11/09 09:35
回复
举报
更多评论
发表了资讯
2016/11/14 15:23

Codis 3.1.0 发布,分布式 Redis 解决方案

Codis 3.1.0 发布了,这是 Codis 3.1 的首个版本。主要改进如下: 提高吞吐量 10 - 20%,并将 pct99 延迟降低了 50% 重新设计集群的架构,并支持与官方 redis-sentinel 集成的 HA 实现新的命令 'SLOTSSCAN' 提供了更好的仪表板 升级 codis 服务器至 redis3.2.4 发行说明 下载地址: codis3.1.0-go1.7.3-linux.tar.gz ...

5
57
发表了资讯
2016/10/20 00:00

Codis 3.1 beta 发布,分布式 Redis 解决方案

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

4
40
发表了资讯
2016/03/23 00:00

Codis 3.0.3 和 2.0.14 发布,Redis 集群解决方案

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

3
37
发表了资讯
2016/03/02 00:00

细说分布式 Redis 架构设计和那些踩过的坑

Codis是一个分布式Redis解决方案,与官方的纯P2P模式不同,Codis采用的是Proxy-based的方案。今天我们介绍一下Codis以及下一个大版本RebornDB的设计,同时会介绍Codis在实际应用场景中的一些tips。最后抛砖引玉,介绍一下我对分布式存储的一些观点和看法。 目录 Redis、RedisCluster和Codis 我们更爱一致性 Codis在生产环...

15
331
发表了资讯
2016/01/06 00:00

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

Codis 3.0.1 发布,更新如下: In 3.0, we redesign dashboard and rpc between dashboard and proxies. We don't need zk/etcd any more, they are only optional for service discovery now. 下载页面:3.0.1 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没...

7
39
发表了资讯
2016/01/01 00:00

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

Codis 2.0.12 发布,更新如下: Handle temp errors on accept instead of closing proxy directly 下载页面:2.0.12 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会...

2
80
发表了资讯
2015/12/25 00:00

Codis 3.0 alpha 发布,Redis 集群解决方案

Codis 3.0 alpha 发布,更新如下: In 3.0, we redesign dashboard and rpc between dashboard and proxies. We don't need zk/etcd any more, they are only optional for service discovery now. 下载页面:3.0-alpha Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis ...

8
50
发表了资讯
2015/09/16 00:00

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

Codis 2.0.6 发布,更新内容如下: skip pre_migrate if slot is already migrating 下载页面:2.0.6 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发...

5
40
发表了资讯
2015/09/11 00:00

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

Codis 2.0.5 发布,更新内容如下: Mark the proxy online automatically when it is started, you do not need to do it manually on dashborad. Ignore the node already exists error on creating fence node. Disallow slot set on non-offline slot, it is an init-only operation. 下载页面:2.0.5 Codis 是一个分...

11
55
发表了资讯
2015/08/05 00:00

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

Codis 2.0 发布,主要改进: 重新设计 request dispatcher,现在 pipeline 和 mget/mset requests 都比之前快很多! Codis-server (forked redis) 升级至 2.8.21,包含上流 Redis 的 bug 修复,还有优化,比如更低的内存消耗和更快的迁移。 优化 zk 连接,现在更稳定 迁移(和自动均衡)任务现在保存在 zk,仪表盘重启的...

15
109
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2016/01/22 23:48

codis,codis3.0和其他

codis参与者谈谈他所认识的codis,值得参考与阅读。

0
2
发表于运维专区
2015/09/18 10:55

Codis

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

0
4
发表了博客
2019/01/02 18:10

codis

总体架构 192.168.199.223(zookeeper、codis-proxy、codis-dashborad:18080、codis-fe:18090、codis-server) 192.168.199.224(zookeeper、codis-server) 192.168.199.254(zookeeper、codis-proxy、codis-server) 一,zookeeper 作用:用于存放数据路由表。 描述:zookeeper简称zk。在生产环境中,zk部署越多,其可...

0
0
发表于服务端专区
2015/12/29 18:25

接触Codis&Codis-ha

从接触到安装测试Codis&Codis-ha,安装的经历

0
1
发表了博客
2018/11/13 17:27

使用codis-admin搭建codis集群

目的 在Redis Codis 部署安装的文章中,介绍了通过fe在web上搭建codis的基本步骤和方法,也介绍了codis-admin的相关说明,为了更好的熟悉codis-admin的使用,本文将使用codis-admin直接搭建codis集群(和fe进行相关的对比)。这样做的另一个目的是为实现自动化脚本部署的时候做相关的准备。 环境 和Redis Codis 部署安...

0
0
2016/09/28 18:20

Codis 安装

1.下载codis 下载地址:https://github.com/CodisLabs/codis.git 2.下载 go 环境库 下载地址:https://golang.org/ 3. 添加 go 环境变量 PATH 及配置 GOHOME 环境变量 export GOPATH=/opt/software/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin 4. 安装 zookeeper (下载安装即可) 5.编译 codis 项目 ,进入 上面 gi...

3
3
2019/09/24 21:10

Codis 安装

1、课程名称:Codis 安装 2、具体内容 Codis 使用 GO 语言开发出来的,所以你在进行安装 Codis 之前一定要配置好 go 语言的编译环境,而后才可以通过 go 语言进行 codis 源代码的下载。 2.1 、配置 GO 开发环境 ...

0
0
2019/09/25 08:00

Codis 简介

1、课程名称:Codis 简介 2、具体内容 Codis 所完成的功能:高可用的Redis 集群。 2.1 、Redis 集群的问题 既然要讨论集群的问题,那么就一定要清楚在任何的数据库系统开发过程之中,主从关系一定是核心的概念,因...

0
0
发表了博客
2019/05/29 10:57

codis 使用

1:Jedis与Redisson对比 2.1. 概况对比 Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单。 Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。可以认为是jedis的补充,...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2015/07/21 16:03

关于codis中的key的模糊查询和批量删除的问题

@goroutine 你好,想跟你请教个问题: 我们想使用codis作为我们的生产环境系统,存放超过亿级的key。但是发现一个问题,如果我需要对key进行维护,涉及到需要进行批量删除,比方,我要将 aaa开头的key数据全部删除掉,怎么去实现比较好呢?我阅读参考文档,codis是不支持keys指令的。 求教~~...

7
0
2018/09/04 11:01

Codis如何清除所有key?也就是flushall

看了codis的介绍,不支持flushall/flushdb,也不支持keys,这意味着无法批量删除key,虽然大量清除key会导致瞬间数据库压力过大,但总有些项目有flush的场景?问下如何间接实现?

2
0
发表了问答
2015/03/01 10:59

codis proxy 单点问题

@goroutine 你好,想跟你请教个问题: 第一 Codis proxy 单点问题,这个如何处理哪? 第二 使用 haproxy做负载均衡,haproxy这个单点问题你们又如何处理哪?

3
0
发表了问答
2015/09/14 10:28

请问有哪些公司在线上使用Codis

@goroutine 你好,想跟你请教个问题: 公司打算用codis存放一些金融数据做缓存。目前会有十几个GB的规模。做一下可行性调查,请问有哪些公司已经在用了呢。 多谢!

4
0
发表了问答
2017/11/21 18:40

codis-dashboard启动报错

codis编译后,启动codis_dashboard报错(脚本nohup ./bin/codis-dashboard --ncpu=1 --config=config/dashboard.toml --log=dashboard.log --log-level=WARN >> /var/log/codis_dashboard.log &) panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation co...

1
0
发表了问答
2015/10/15 12:07

redis 3.x之后再部署群集服务的时候还有必要考虑codis么?

直接用redis cluster & sentinel,前面增加haproxy+keepalived,能取代codis?

4
0
发表了问答
2015/10/20 09:26

codis-proxy session has been expired by the server

@goroutine 你好,想跟你请教个问题: codis-proxy经常会莫名其妙的挂掉,查看日志,报的是session has been expired by the server。 这是什么问题?怎么解决啊?

4
0
发表了问答
2015/03/16 13:39

codis 稳定性测试 (停止master网卡) 导致整个codis服务假死 无法正常运行

@goroutine 你好,想跟你请教个问题:我在做codis的测试, 测试方式如下; 系统环境centos 6.2 3台虚拟机 A:192.168.1.10 B:192.168.1.20 C:192.168.1.30 codis服务与zookeeper都跑在A机器上, B和C机器跑两个codis-server 服务跑起来以后 我写了个shell脚本 循环 set , 之后将组中当前处于master的服务器网卡down掉, 脚本就...

3
0
发表了问答
2016/07/03 19:48

Codis打算研究但没有找到开发指南

@goroutine 你好,想跟你请教个问题:Codis开发指南

1
1
发表了问答
2015/09/28 11:40

安装codis执行bootstrap.sh时报错

最近在学习codis,安装过程中,在执行bootstrap.sh时报错,本人没学过go,哪位大神能帮忙看一下吗,谢谢 ./bootstrap.sh downloading dependcies, it may take a few minutes... go build -o bin/codis-proxy ./cmd/proxy # _/usr/local/codis/cmd/proxy cmd/proxy/main.go:192: undefined: utils.Version cmd/proxy/main...

5
0
发表了问答
2015/11/21 15:22

redis和codis的应用场景有什么区别?

@goroutine 你好,想跟你请教个问题:redis和codis的应用场景有什么区别?可以只使用codis,而不再使用redis吗?

1
0
发表了问答
2015/09/17 08:55

redis使用了pub/sub功能,升级codis后如何修改

redis使用了pub/sub功能,由于需要升级codis, 但是codis并不支持pub/sub功能,该如何修改。

7
0
发表了问答
2015/05/29 15:53

codis主从同步如何自动进行同步?

codis在一个group之内的master和slave如何做到主从同步?

1
0
发表了问答
2015/08/28 12:50

Jodis在哪下载?

Jodis在哪下载?

3
0
发表了问答
2015/05/19 11:35

支持 redis3.0、支持 php 连入吗?

1、codis 可以支持 redis3.0 吗? 2、php 怎么连 codis ?

3
0
发表了问答
2015/05/19 17:38

codis支持etcd吗?

@goroutine 你好,想跟你请教个问题:现在codis支持etcd吗,用来代替zookeeper?

5
0
发表了问答
2015/05/15 09:12

在dashboard上面添加redis server时,ip未加端口,无法删除bug

在dashboard上面添加redis server时,ip未加端口,无法删除,求高手解答 在服务端删除也报错: [root@t44 bin]# ./codis-config server remove 1 192.168.81.41 2015/05/14 20:55:30 main.go:139: [fatal] github.com/wandoulabs/codis/cmd/cconfig/utils.go:64: http status code 500, cannot remove master, use promo...

2
0
发表了问答
2014/11/25 20:37

豌豆荚的codis redis集群可否用java调用

豌豆荚的codis redis集群可否用java调用?

5
0
发表了问答
2014/11/09 09:05

codis非常棒的设计

非常棒的设计,找个测试环境考察一下先,用得爽可以真的用到在线系统上了,嘿嘿,感谢。

12
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
19 评论
1.2K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部