写点什么

高可用、开源的 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:5827249
用户头像

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

关注

评论

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

6种新方法帮你提高Java学习能力,mysql教程入门到精通pdf

Java 程序员 后端

09 K8S之对象类资源配置

穿过生命散发芬芳

k8s 11月日更

2021技能大赛云计算赛项先电2,java基础入门课后答案清华大学出版社

Java 程序员 后端

2021最新支付宝4面+美团4面+拼多多四面面试总结,狂刷200道数据结构与算法

Java 程序员 后端

阿里P6面试官:Redis如何实现分布式锁?锁过期了怎么办?

Java高级开发

redis Java、

30天熬夜苦学这本Java后端架构设计精讲,大厂三面架构问题so easy

Java 程序员 后端

5年Java经验字节社招:半月3次面试,成功拿到Offer,大厂Mysql高频面试题

Java 程序员 后端

AcWing 1532,java教程下载网盘

Java 程序员 后端

97 道大厂 Java 核心面试题出炉,来试试看你会几道题?

Java 程序员 后端

【Java 原理剖析系列】深度分析 Semaphore工作原理分析

洛神灬殇

Java 并发编程 Semaphore 11月日更

2021春招总结,面了阿里,腾讯,做Java程序员真的没有春天吗

Java 程序员 后端

2021最新整理美团面经分享:999页Java面试宝典+技术知识点总结

Java 程序员 后端

2021阿里大牛最新发布:Java高频面试题和核心技术(已涨薪6K

Java 程序员 后端

95 后程序员一出校门就拿年薪 32 万?,java入门视频教学

Java 程序员 后端

2021毕业的Java应届生,面试需要掌握哪些技能,才能收割offer

Java 程序员 后端

7张图带你轻松理解Java 线程安全,java开发架构思想

Java 程序员 后端

最佳实践|Apache Pulsar 在拉卡拉的技术实践

Apache Pulsar

开源 架构 中间件 Apache Pulsar 消息系统 Apache 分布式

@RequestMapping详解,隔壁都馋哭了

Java 程序员 后端

2021最新整理美团面经分享:999页Java面试宝典+技术知识点总结(1)

Java 程序员 后端

30岁,转行学编程靠谱吗?,java银行面试的问题

Java 程序员 后端

谈一谈区块链项目使用的数据库LevelDB

Regan Yue

区块链 leveldb 11月日更

如何将字符串截取成一个集合

卢卡多多

内容合集 11月日更

50道Java面试常问的基础知识,虽是基础但是避坑之路可得小心谨慎

Java 程序员 后端

双维度第一!百度智能云领衔中国“AI+工业互联网”市场领导者阵营

百度大脑

人工智能 百度

OpenYurt 与 FabEdge 集成验证——云边数据面通信初试

阿里巴巴云原生

阿里云 云原生 边缘计算 openyurt FabEdge

2021版最新!字节跳动3面+腾讯6面一次过,java高级特性面试题

Java 程序员 后端

2021版阿里Java亿级并发设计手册:基础+数据库,linux服务器开发需要的技术

Java 程序员 后端

3分钟快速搞懂Java的桥接方法,Java多态实现原理解析

Java 程序员 后端

Flink企业级优化全面总结(3万字长文,15张图)

大数据老哥

linux之git入门命令

入门小站

Linux

2021秋招必刷题:Redis+Mybatis,java使用教程答案

Java 程序员 后端

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