阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

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

关注

评论

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

安全 创新 实践|海泰方圆受邀参加“数字时代的网信创新与价值共创”技术交流研讨会

电子信息发烧客

为什么要使用 Rust 语言?

面向加薪学习

rust

穿越过后,她说多元宇宙真的存在

脑极体

十大靠谱“计算机视觉数据集”榜单

澳鹏Appen

人工智能 机器学习 计算机视觉 数据集 训练数据

Zadig 面向开发者的自测联调子环境技术方案详解

Zadig

DevOps Service Mesh CI/CD 测试环境治理

稳!上千微服务如何快速接入 Zadig(Helm Chart 篇)

Zadig

DevOps 微服务架构 持续交付 自动化运维 Zadig

稳!上千微服务如何快速接入 Zadig(K8s YAML 篇)

Zadig

DevOps 微服务架构 k8s 持续交付 自动化运维

微博评论的高性能高可用计算架构方案

joak

构建实战化防御体系之立体防渗透

穿过生命散发芬芳

6月月更 攻防演练

2022最新Java面试突击手册,1000道面试题+优质面经

Java全栈架构师

Java 程序员 面试 算法 计算机网络

Zadig 构建究竟何强大?一起来实践

Zadig

gitlab 云原生 jenkins Zadig

基于管线的混合渲染

Finovy Cloud

gpu 渲染器 GPU服务器 显卡、gpu

Zadig + 洞态 IAST:让安全溶于持续交付

Zadig

DevSecOps 代码安全检测 安全测试 Zadig

IDC:阿里云获2021中国数据治理平台市场份额第一

阿里云大数据AI技术

数据挖掘 大数据 数据采集

奇怪,为什么ArrayList初始化容量大小为10?HashMap的初始化容量为16?

Java全栈架构师

Java 源码 程序员 面试 程序人生

Android Target 31 升级全攻略 —— 记阿里首个超级 App 的坎坷升级之路

阿里巴巴终端技术

android App target

OneFlow源码解析:算子签名的自动推断

OneFlow

源码解析 算子 Relu

华为云的AI深潜之旅

脑极体

Java Core「19」使用 Java IO API 创建 C/S 程序的方法

Samson

学习笔记 Java core 6月月更

Zadig 正式推出 VS Code 插件,本地开发更高效

Zadig

vscode 插件 热部署 本地化开发 Zadig

如何高效优雅地管理接口文档

Liam

测试 开发工具 API接口管理 API文档 免费API接口

如何设计业务高性能高可用计算架构 - 作业

阿拉阿拉幽幽

OUT了吧,Kafka能实现消息延时了

华为云开发者联盟

云计算 开发

电商秒杀系统架构设计

哈喽

「架构实战营」

穿越过后,她说多元宇宙真的存在

脑极体

Mac中Git如何忽略.DS_Store文件

坚果

git git 规范 6月月更

应用实践 | 10 亿数据秒级关联,货拉拉基于 Apache Doris 的 OLAP 体系演进(附 PPT 下载)

SelectDB

数据库 flink OLAP Doris 数仓建设

直播预告|SQL也能玩转工业级机器学习?MLOps meetup V3带你一探究竟!

星策开源社区

人工智能 机器学习 sql 特征平台 MLOps

Zadig + SonarQube,为开发过程安全保驾

Zadig

DevOps 代码扫描 SonarQube 质量内建

软件测试的三个沟通技巧

FunTester

wrk压力测试工具介绍

乌龟哥哥

6月月更

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