5.理想中的Redis5.1 第二代Codis

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

Codis作者谈到第二代Codis,即Reborndb的发展方向,很值得学习:

“在开源Codis后,我们收到了很多社区的反馈,大多数的意见是集中在Zookeeper的依赖,Redis的修改,还有为啥需要Proxy上面,我们也在思考,这几个东西是不是必须的。当然这几个部件带来的好处毋庸置疑,上面也阐述过了,但是有没有办法能做得更漂亮。于是,我们在下一阶段会再往前走一步,实现以下几个设计:

1)使用proxy内置的Raft来代替外部的Zookeeper,zk对于我们来说,其实只是一个强一致性存储而已,我们其实可以使用Raft来做到同样的事情。将raft嵌入proxy,来同步路由信息。达到减少依赖的效果

2)抽象存储引擎层,由proxy或者第三方的agent来负责启动和管理存储引擎的生命周期。具体来说,就是现在codis还需要手动的去部署底层的Redis或者qdb,自己配置主从关系什么的,但是未来我们会把这个事情交给一个自动化的agent或者甚至在proxy内部集成存储引擎。这样的好处是我们可以最大程度上的减小Proxy转发的损耗(比如proxy会在本地启动Redis instance)和人工误操作,提升了整个系统的自动化程度。

3)还有replication based migration。众所周知,现在Codis的数据迁移方式是通过修改底层Redis,加入单key的原子迁移命令实现的。这样的好处是实现简单、迁移过程对业务无感知。但是坏处也是很明显,首先就是速度比较慢,而且对Redis有侵入性,还有维护slot信息给Redis带来额外的内存开销。大概对于小key-value为主业务和原生Redis是1:1.5的比例,所以还是比较费内存的。在RebornDB中我们会尝试提供基于复制的迁移方式

4)QDB:QDB使用LevelDB、RocksDB、GoLevelDB作为后端存储。我们喜欢Redis,并且希望超越它的局限,因此我们创建了一个服务叫做QDB,它兼容Redis,将数据保存在磁盘来越过内存大小的限制并且将热点数据保存在内存中以提高性能。”

除了第三点“基于复制的迁移”,这些改进思路在下面要介绍的Redis商业版(RLEC)中得到了印证。因为RLEC并未透露它的迁移实现方式,所以技术细节我们不得而知。






本文作者:geelou
本文来自云栖社区合作伙伴rediscn,了解相关信息可以关注redis.cn网站。
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
监控 NoSQL 算法
Redis学习笔记-Codis 和 Redis Cluster 的区别
Redis学习笔记-Codis 和 Redis Cluster 的区别
183 0
|
NoSQL 安全 Redis
豌豆荚Redis集群方案:Codis
Codis简介 Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到CodisProxy和连接原生的RedisServer没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的Redis服务。
365 0
豌豆荚Redis集群方案:Codis
|
NoSQL Redis
《Codis 集群演化与 Redis 异步迁移》电子版地址
Codis 集群演化与 Redis 异步迁移
115 1
《Codis 集群演化与 Redis 异步迁移》电子版地址
|
NoSQL Redis
|
存储 运维 NoSQL
Redis之Codis
Redis之Codis
1660 1
|
存储 NoSQL 网络协议
Redis 集群之Redis+Codis方案
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有显著区别, 上层应用可以像使用单机的 Redis 一样使用。
1258 0
|
存储 NoSQL 测试技术
redis4.0、codis、阿里云redis 3种redis集群对比分析
本文对redis4.0版本的cluster,codis,以及阿里云redis 3种集群进行了对比分析。
41565 1
|
运维 NoSQL 中间件
|
NoSQL Go Redis
基于Codis的Redis集群部署
Codis是基于代理的高性能Redis集群方案,使用Go语言进行开发,现在在在豌豆荚及其它公司内已经广泛使用,当然也包括我们公司。 Codis与常见的Redis集群方案对比。
|
存储 NoSQL 测试技术
redis4.0、codis、阿里云redis 3种redis集群对比分析
redis4.0、codis、阿里云redis 3种redis集群对比分析 本文对redis4.0版本的cluster,codis,以及阿里云redis 3种集群进行了对比分析。 1、架构对比 1.1、redis 4.0 cluster redis 4.0版本的集群是去中心化的结构,集群元数据信息分布在每个节点上,主备切换依赖于多个节点协商选主。
3567 0