Redis 集群解决方案 Codis

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

加载中

评论(15)

wanpanfeng
wanpanfeng
找不到codis和spring整合的代码,新手不会弄啊
z
zhensuke
最近使用codis,做session。报config和PUBLISH不允许访问。ERR handle request, command 'PUBLISH' is not allowed。求大神解决。
韩氏集团
韩氏集团
欢迎加入343595434codis技术交流群,这里有codis作者以及各个codis使用大神为你答疑解惑
delgyd
delgyd
codis-proxy通过硬件负载(DR)后,业务连接时,有的时候很慢。有的时候很快!在对于proxy的负载检查是不是有问题?
luger
luger
公司再用,感觉很好!
AooE
AooE
好东西啊。。用sentinel感觉13还是别扭啊 #Codis#
zmyer
zmyer
不知道最近版本里面少了sample这个目录,看之前的版本里面有,不知道作者是出于啥考虑呢,sample对于刚入门的读者来说,太重要了哇@goroutine #Codis#
xiaoskery
xiaoskery
redis中使用到了pub/sub,迁移到codis后,如何修改啊 头疼 #Codis#
杨鬼
杨鬼
@红薯 这个可以配合@j2cache做L2 的redis集群吗? Codis
邋遢陋髓
邋遢陋髓
codis可以用java调用吗? Codis

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

Codis 3.1.0 发布了,这是 Codis 3.1 的首个版本。主要改进如下: 提高吞吐量 10 - 20%,并将 pct99 延迟降低了 50% 重新设计集群的架构,并支持与官方 redis-sentinel 集成的 HA 实现新的...

2016/11/14 15:23

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

Codis 3.1 beta 发布了。 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用...

2016/10/20 16:05

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

Codis 3.0.3 和 2.0.14 发布了,Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以...

2016/03/23 20:17

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

Codis是一个分布式Redis解决方案,与官方的纯P2P模式不同,Codis采用的是Proxy-based的方案。今天我们介绍一下Codis以及下一个大版本RebornDB的设计,同时会介绍Codis在实际应用场景中的一些...

2016/03/02 07:41

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 no...

2016/01/06 08:18

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

Codis 2.0.12 发布,更新如下: Handle temp errors on accept instead of closing proxy directly 下载页面:2.0.12 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codi...

2016/01/01 08:07

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 discover...

2015/12/25 07:37

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

Codis 2.0.6 发布,更新内容如下: skip pre_migrate if slot is already migrating 下载页面:2.0.6 Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原...

2015/09/16 07:58

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 ...

2015/09/11 07:57

没有更多内容

加载失败,请刷新页面

没有更多内容

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

看了codis的介绍,不支持flushall/flushdb,也不支持keys,这意味着无法批量删除key,虽然大量清除key会导致瞬间数据库压力过大,但...

09/04 11:01
3
回答
codis proxy 单点问题

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

2015/03/01 10:59
4
回答
请问有哪些公司在线上使用Codis

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

2015/09/14 10:28
1
回答
codis-dashboard启动报错

codis编译后,启动codis_dashboard报错(脚本nohup ./bin/codis-dashboard --ncpu=1 --config=...

2017/11/21 18:40
4
回答
redis 3.x之后再部署群集服务的时候还有必要考虑codis么?

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

2015/10/15 12:07
3
回答
codis-proxy session has been expired by the server

@goroutine 你好,想跟你请教个问题: codis-proxy经常会莫名其妙的挂掉,查看日志,报的是session has been expire...

2015/10/20 09:26
3
回答
codis 稳定性测试 (停止master网卡) 导致整个codis服务假死 无法正常运行

@goroutine 你好,想跟你请教个问题:我在做codis的测试, 测试方式如下; 系统环境centos 6.2 3台虚拟机 A:192.168.1....

2015/03/16 13:39
1
回答
Codis打算研究但没有找到开发指南

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

2016/07/03 19:48
2
回答
安装codis执行bootstrap.sh时报错

最近在学习codis,安装过程中,在执行bootstrap.sh时报错,本人没学过go,哪位大神能帮忙看一下吗,谢谢 ./bootstrap.sh dow...

2015/09/28 11:40
1
回答
redis和codis的应用场景有什么区别?

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

2015/11/21 15:22

没有更多内容

加载失败,请刷新页面

Codis 分布式缓存部署

Codis 分布式缓存部署

2015/09/13 08:01
150
0
Codis 运维D3 - Codis 下命令使用帮助

摘要:昨天讲了Codis 的搭建,今天我们来说说 Codis 搭建完毕后,Codis 命令的使用及帮助。 首先我们来看下,Codis 下的所有命令 [root@redis01 codis]# ls codis-dashboard codis-ha c...

2017/10/06 12:03
48
0
Codis 3.0.1 安装使用文档(官方)

该文档已经经过实际操作验证,除了涉及到在golang.com一个资源包下载不了外,其他的没有问题。(中间可能会涉及到网络问题导致文件不能下载,可以按照提示网站下载后放在指定目录重新编译安装...

2016/01/20 15:09
782
1
Redis集群方案(codis)

一、Redis之codis解决方案 http://blog.csdn.net/dc_726/article/details/47052607 http://blog.csdn.net/yanggd1987/article/details/46825895 1、关于豌豆荚开源的Codis Codis是豌豆荚使用...

2016/06/01 18:14
49
0
redis codis 安装部署

redis 3.x 版本加入了 cluster 功能,codis 作为 cluster 出现之前的 redis 集群管理和监控解决方案

2016/05/02 12:20
859
1
Redis集群(三)

基于codis的redis集群环境 codis是豌豆荚开源的一个类似于twemproxy的redis代理程序,但是它解决了在使用twemproxy过程中遇到的一些问题,比如动态扩容的问题。 Github地址:https://github....

2016/02/22 17:40
41
1
codis集群搭建

github文档https://github.com/CodisLabs/codis/blob/master/doc/tutorial_zh.md ####环境 codis-proxy+codis-config: 192.168.10.93 proxy_1 192.168.10.94 proxy_2 192.168.10.95 proxy_...

2016/04/07 16:16
44
1
Codis

Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, C...

2015/09/18 10:55
587
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部