写点什么

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

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

关注

评论

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

不造芯,不配做互联网巨头

IC男奋斗史

芯片行业思考

开源字节系统白皮书

源字节1号

软件开发

1篇文章全面总结2020年Java面试知识,掌握这些你也能进大厂!

爱好编程进阶

程序员 后端开发

maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)

程序员欣宸

Java Docker 5月月更

电阻电路的等效变换 (Ⅱ)

謓泽

5月月更

【愚公系列】2022 年 05 月 二十三种设计模式(三)-建造者模式(Builder Pattern)

愚公搬代码

5月月更

2020字节跳动秋招技术面试题:Kafka+反射

爱好编程进阶

Java 程序员 后端开发

[Day34]-[二叉树]有序链表转换二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

Git进阶系列 | 5. Rebase vs Merge

俞凡

git 最佳实践

使用MyBatis-Plus代码生成器(数据库MySQL/Sqlite

芝士味的椒盐

Java mybatis 5月月更

MyBatis 的动态 SQL超详细讲解

顾言

mybatis 动态SQL

网站开发进阶(九)应用内存检测

No Silver Bullet

内存泄露 变量声明 5月月更

网站开发进阶(五)网站发布之道

No Silver Bullet

Apache tomcat IIS 5月月更 网站发布

用户体验思维 7 大陷阱

龙国富

产品设计 UI UX 用户体验 产品设计与思考

Git进阶系列 | 6. 交互式Rebase

俞凡

git 最佳实践

都2022了,不会还有人不会idea注释相关的配置吧,速进本文

芝士味的椒盐

Java IDEA 5月月更

C语言总结_字符串全方位练习

DS小龙哥

5月月更

SecurityContextHolder之策略模式源码分析

急需上岸的小谢

5月月更

130道BATJM真题及解析:集合+Spring

爱好编程进阶

Java 程序员 后端开发

nginx配置系列(五)限制连接数

乌龟哥哥

5月月更

毕业设计-设计电商秒杀系统

默光

秒杀架构设计 架构训练营5期

13W字!银四巨作:Java进阶架构师核心手册

爱好编程进阶

Java 程序员 后端开发

Go链表与切片比较

jinjin

List 链表 slice Go 语言 切片

DevOps系列之 —— DevOps概览(二)新型软件技术及交付模式

若尘

DevOps 5月月更

如何登录到你的 WordPress 管理仪表板

海拥(haiyong.site)

5月月更

Git进阶系列 | 4. 合并冲突

俞凡

git 最佳实践

《数据中心白皮书 2022》揭秘“东数西算”下数据中心高性能计算的六大趋势八大技术

GPU算力

互联网跨界造芯的“菊与刀”

IC男奋斗史

芯片 芯片行业思考

SAP 电商云的 Spartacus Storefront 部署到 CCV2 的前提条件

汪子熙

typescript 电商 SAP commerce 5月月更

Git进阶系列 | 3. 基于Pull Request实现更好的协作

俞凡

git 最佳实践

超级原始人系列盲盒即将上线,PlatoFarm赋能超多权益

西柚子

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