OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Redis集群,不再雾里看花


分享到


分类 行业动态   关键字 开源   发布 ourjs  1413188719719
注意 转载须保留原文链接,译文链接,作者译者等信息。  
作者: antirez  

注* Antirez是Redis项目的作者和主要维护者,译自其博客有删减; Redis是目前最流行的键值(key-value)数据库,数据集以异步方式从内存同步到硬盘。由于其基于内存特性,性能极好,特别适合应对高并发场合,在NodeJS应用中多用来存储持久化的Session。

我第一次提交有关Redis集群的代码大约在2011年3月29。但我只是合并了别人的一个提交请求:集群分支的历史日志已经不可用了,因为它那一塌糊涂的“正在进行中的”提交,只是为了预留一些API和互动的接口。 

现在这个项目已经4岁了。是整个Redis项目历史的三分之二。今天,我准备发布一个Redis3.0.0的候选版(RC),这是正式支持群集的第一个版本。 

一个不稳定的运行 


为什么花了这么长时间的原因很简单:集群的支持开始的很仓促,在某一天,我突然意识到无法自动扩展的redis,看上去非常地弱。现在并不是开始集群项目的正确时刻,Redis项目本身还非常不成熟,所以到现在还没有一个完全支持“集群”的版本。

为了避免在错误的时间开始一个新的项目所产生的问题,至少我没有办法无视社区里提交的各种问题/请求; 因此该项目被停止, 以将精力集中到更为重要的基本功能上。Persistence(持久化), replication(复制), latency(延迟), introspection(自我恢复), 这些都比集群的功能更为重要。 

该项目的另一个限制是,开始时,我没有任何解决分布式编程的经验。如果我刚开始就开始生产环境的开发,这就太可怕了。真正的“产品”应该是:低延迟,可线性扩展,和开销小。但是,实现的细节上都做错了,它比原来设想的更加复杂,使用的算法也不安全的,还有很多类似的问题。 

我开始研究分布式编程的基础知识,虽然做小的进步,重新设计Redis的集群。两个系统中的分布式编程算法仍然非常原始,因为它们是异步的复制,最终达到一致的系统,所以我没有必要处理的同步和其他非琐碎的问题。但是,即使你处理一个简单的问题,但你还需要了解你在做什么,否则你做出的系统可能完全是错误的。 

尽管有这些问题,我继续在项目中合作,试图修复它,把它变成熟,这里有两个最为重要的问题: 

1)将N个节点之间的数据集分片
2)响应故障转移并在遭遇异常后能继续工作 


它(集群)具体是做什么的? 


Redis Cluster 基本上是一种数据分段存储策略,让它们有相互访问碎片的能力,在一起工作时又有故障转移能力,确保系统在遭遇异常时能正常工作。

但是从分布式数据库的角度来看,Redis的Cluster提供的分区数量有限,一致性也比较弱。基本上它既不是CP的,也不是AP的系统。换句话说,Redis的集群,并不能达到分布式系统的理论极限,只为了获得一定的真实世界性能。

注* CP/AP系统的概念: CP(一致的,包容的网络分区,但不可用); AP(容错的网络分区,但不一致)。

我们用“最终一致性”模型来保持一致性,如果节点因为分区的原因而无法同步,当分区恢复时,以确保所有的key获取它的值。


前进的道路 


我们最终有了一个最小可用产品(MVP),现在它已经足够稳定了,可以用在生产环境中。越多的采用,完善的空间也就越磊。我从Redis和Sentinel上学到了一点,软件从可用到成熟是一个增量的过程。倾听用户的声音,修复缺陷,测试更多的代码。

同时,我也在开发下一代的Redis Cluster, 改进一些现在还没有添加但很有用的功能,像多数据中心支持,在少数分区中使用回播(commands replay),以使写入更安全。

Redis Cluster RC1 已经开放下载 '3.0.0-rc1',你可以在 Github或 Redis.io 下载这个版本 http://redis.io/download
原文地址: 点此
社区评论 ( Beta版 )
  • #0 郑叮导 1413204221962

    内容太少了吧

  • #1 ourjs 1413206806366

    @郑叮导 #0

    有些内容专业性很强,适合直接看原文去理解。

OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 我们不需要JavaScript框架
  2. Bootstrap vs Foundation如何选择靠谱前端框架
  3. Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?
  4. Node.JS超越jQuery成为Github上第二受欢迎的开源项目
  5. 5个经典的前端面试问题
  6. JavaScript有可能取代AppleScript成为OS X平台的默认编程脚本
  7. 针对特定浏览器起作用的CSS: IE Chrome Firefox CSS Hack
  8. 15个最好的HTML5前端响应式框架(2014)
  9. 程序员取名:用大数据分析一下宝宝取名时最容易重复的名字
  10. 合并JavaScript数组的N种方法
  11. 用 OnceAir 搭建个人Git/Svn/照片备份服务器,每年电费7块钱

 相关阅读 - 行业动态
  1. ChromeOS将停止在外接设备中支持ext2/3/4文件系统
  2. Node.JS超越jQuery成为Github上第二受欢迎的开源项目
  3. 为什么是HTML5?
  4. 电子邮件仍然是互联网上最美好的事物
  5. Amazon云增长过快,吓坏股东
  6. 互联网男孩之死
  7. 树树莓派推出新版本Model B+
  8. Python成为美国大学第一流行的教学编程语言
  9. Hacker News创始人预测,下一轮经济危机即将到来
  10. NPM成为最大包管理分发平台

 关键字 - 开源
  1. HTML5相关格式转换提供商对比—选择困难户的专属福利来啦!
  2. 基于Node.JS的开源CMS系统
  3. 几款开源的图形化Redis客户端管理软件
  4. 使用NodeJS搭建邮件自动发送服务器
  5. Mongoose学习参考文档——基础篇
  6. NodeJS 文件(夹)压缩/解压方案(zip/unzip)-Linux上zip相关命令
  7. 今天的你吃鸡了吗
  8. HexGL用HTML5和WebGL实现的3D赛车游戏
  9. Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?
  10. 15个最好用的Node.JS后端框架

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号