AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

高可用、开源的 Redis 缓存集群方案

  • 2014-11-13
  • 本文字数:1254 字

    阅读完需:约 4 分钟

由于单台 Redis 服务器的内存管理能力有限,使用过大内存的 Redis 又会使得服务器的性能急剧下降,一旦服务器发生故障将会影响更大范围业务,而 Redis 3.0 beta1 支持的集群功能还不适合生产环境的使用。于是为了获取更好的 Redis 缓存性能及可用性,很多公司都研发了 Redis 缓存集群方案。现对 NetFlix 、Twitter、国内的豌豆荚在缓存集群方面的解决方案进行一个汇总,以供读者参考,具体内容如下:

1、NetFlix 对 Dynamo 的开源通用实现 Dynomite

Dynomite 是 NetFlix 对亚马逊分布式存储引擎 Dynamo 的一个开源通用实现,使用 C/C++ 语言编写、以代理的方式实现的 Redis 缓存集群方案。Dynomite 不仅能够将基于内存的 Redis 和 Memcached 打造成分布式数据库,还支持持久化的 MySQL、 BerkeleyDB LevelDB 等数据库,并具有简单、高效、支持跨数据中心的数据复制等优点。Dynomite 的最终目标是提供数据库存储引擎不能提供的简单、高效、跨数据中心的数据复制功能。Dynomite 遵循 Apache License 2.0 开源协议发布,更多关于 Dynomite 的信息请查看 NetFlix 技术博客对 Dynomite 的介绍

2、Twitter 的 Redis/Memcached 代理服务 Twemproxy

Twemproxy 是一个使用 C 语言编写、以代理的方式实现的、轻量级的 Redis 代理服务器,它通过引入一个代理层,将应用程序后端的多台 Redis 实例进行统一管理,使应用程序只需要在 Twemproxy 上进行操作,而不用关心后面具体有多少个真实的 Redis 或 Memcached 实例,从而实现了基于 Redis 和 Memcached 的集群服务。当某个节点宕掉时,Twemproxy 可以自动将它从集群中剔除,而当它恢复服务时,Twemproxy 也会自动连接。由于是代理,所以 Twemproxy 会有微小的性能损失。根据 Redis 作者的测试结果,在大多数情况下,Twemproxy 的性能相当不错,同直接操作 Redis 相比,最多只有 20% 的性能损失。Twemproxy 遵循 Apache License 2.0 开源协议发布,更多关于 Twemproxy 的信息请登录其在 GitHub 的主页查看。

3、豌豆荚的 Redis 集群解决方案 Codis

Codis 是豌豆荚使用 Go 和 C 语言开发、以代理的方式实现的一个 Redis 分布式集群解决方案, 且完全兼容 Twemproxy。Twemproxy 对于上一层的应用来说, 连接 Codis Proxy(Redis 代理服务)和连接原生的 Redis 服务器没有明显的区别, 上一层应用能够像使用单机的 Redis 一样对待。Codis 底层会处理请求的转发、不停机的数据迁移等工作, 所有底层的一切处理, 对于客户端来说是透明的。总之,可以简单的认为后台连接的是一个内存无限大的 Redis 服务。Codis 遵循 MIT 开源协议发布,更多关于 Codis 的信息请登录其在 GitHub 的主页查看。

另外,还有一些未开源的解决方案,比如新浪、百度、淘宝、腾讯等的 Redis 集群方案。在 Redis 官方正式推出可用于生产环境的集群方案前,以上三种方案是非常值得考虑在生产环境使用的方案。


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-11-13 06:5827458
用户头像

发布了 92 篇内容, 共 48.3 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

AI投研分析,模块化赛道可能会出现新的头部公链

股市老人

基于HIL+RCP的三相整流电路实验

芯动大师

电压 电源 三相整流

关于程序员如何解决35岁焦虑的一点个人思考

孔令飞

35岁焦虑

深入Linux设备模型:开发者指南

GousterCloud

Linux Kenel 设备

精通测试规划:打造完备的测试计划与总结报告

测吧(北京)科技有限公司

测试

性能测试中的唯一标识问题研究

FunTester

Linux IO:打开数据之窗的魔法

GousterCloud

io Linux Kenel

Linux内核探幽:深入浅出IO模型

GousterCloud

io Linux Kenel

探秘Linux进程与线程:多进程与多线程的奥秘及实战场景

测吧(北京)科技有限公司

测试

精通Linux性能优化:掌握CPU、内存、网络和IO性能调优的技巧与工具

测吧(北京)科技有限公司

测试

ERC314协议代币开发及合约开发详解

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

淘宝商品评论API:连接消费者与商家的桥梁,提升购物体验新途径

技术冰糖葫芦

API 文档

企业架构设计原则之品质均衡性(一)

凌晞

企业架构 架构设计 架构设计原则

解析名企测试流程:从项目立项到产品上线的完整指南

测吧(北京)科技有限公司

测试

AI投研分析,模块化赛道可能会出现新的头部公链

股市老人

从零开始编写的下一代逻辑编排引擎 NopTaskFlow

canonical

低代码 工作流引擎 逻辑编排 协程原理 行为树

Linux设备深探:桥接硬件与软件的秘密通道

GousterCloud

Linux Kenel 设备 设备模型

揭秘Linux进程通讯:解决死锁难题的方法论

测吧(北京)科技有限公司

测试

深度探索名企项目开发:揭秘经典开发流程与测试策略

测吧(北京)科技有限公司

测试

云原生数据库下一站:像 MySQL 一样流行,让更多人受益于新技术的发展

百度Geek说

云计算 云原生数据库

Rust 解码 Protobuf 数据比 Go 慢五倍?记一次性能调优之旅

Greptime 格睿科技

Go rust 性能 序列化 企业号 4 月 PK 榜

高效管理测试资源:工具化管理测试用例与Bug漏洞

测吧(北京)科技有限公司

测试

测试管理实战:优化测试流程,提升项目质量与效率

测吧(北京)科技有限公司

测试

C++ Break、Continue 和 数组操作详解

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

Linux IO的奥秘:深入探索数据流动的魔法

GousterCloud

io Linux Kenel

Linux设备全览:从字符到块,揭秘每种设备的秘密

GousterCloud

Linux Kenel 设备

高可用、开源的Redis缓存集群方案_语言 & 开发_李士窑_InfoQ精选文章