为什么80%的码农都做不了架构师?>>>   

由于单台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官方正式推出可用于生产环境的集群方案前,以上三种方案是非常值得考虑在生产环境使用的方案。

转载于:https://my.oschina.net/jewill/blog/381391

Redis学习笔记(11)——Redis缓存集群方案相关推荐

  1. kubernetes(K8S)学习笔记P6:K8s集群|java项目部署

    kubernetes(K8S)学习笔记P6:K8s集群|java项目部署 8.集群资源监控 8.1概述 8.2搭建集群监控平台系统 8.2.1部署prometheus 8.2.3部署Grafana 8 ...

  2. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...

  3. zset获取指定score_redis zset更新score redis学习笔记5 - Redis - 服务器之家

    redis zset更新score redis学习笔记5 发布时间:2017-04-03 来源:服务器之家 一:概述 zset全称为sorted-sets类型,和set数据类型有极为相似,都是字符串的 ...

  4. Redis学习笔记之Redis单机,伪集群,Sentinel主从复制的安装和配置

    0x00 Redis简介 Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server). Redis的键值 ...

  5. MongoDB学习笔记(三)-----集群架构

    MongoDB 有三种集群部署模式,分别为主从复制(Master-Slaver).副本集(Replica Set)和分片(Sharding)模式. Master-Slaver 是一种主从副本的模式,目 ...

  6. 调度框架学习笔记(3)—— 集群调度框架的架构演进过程

    本章是 The evolution of cluster scheduler architectures 文章的学习笔记.这篇文章讨论了这些年调度架构是如何发展的以及为什么会这样发展. 首先介绍一下这 ...

  7. Docker学习笔记 — Swarm搭建Docker集群

    http://www.cnblogs.com/rio2607/p/4445968.html#undefined Swarm介绍 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具 ...

  8. Kubernetes的学习笔记总结之k8s集群安装部署

    kubernets 集群安装部署. 安装 Docker 所有节点都需要安装 Docker. apt-get update && apt-get install docker.io 安装 ...

  9. hbase1.1.1 连接集群_HBase-1.0.1学习笔记(一)集群搭建

    鲁春利的工作笔记,好记性不如烂笔头 如下配置参照了http://hbase.apache.org/book.html,详见:hbase-1.0.1.1/docs/book.html 环境配置 1.安装 ...

最新文章

  1. C语言 带比较器的归并排序
  2. ebs和java哪个前景好_EBS与实例存储的好处(反之亦然)[关闭]
  3. elasticsearch说了一些了,这次说说Solr【入门Solr这篇就够了】
  4. 网络分流器|运营商光纤延距解决方案
  5. python是偏向bs还是cs_CS与BS架构区别、比较、及现状与趋势分析
  6. java程序怎么都不是一个_java运行的流程-怎么运行java程序编了一个程序不知道怎么运行郁闷啊后缀文件名是 爱问知识人...
  7. WordPress忘记密码的5种解决方法
  8. linux命令备记(一)
  9. Linux架构之NFS共享存储1
  10. 我正在运行哪个版本的PostgreSQL?
  11. Page.IsValid 属性
  12. Type is unsupported, or the types of the items don‘t match field type in CollectionDef.
  13. 【图像融合】基于matlab GUI小波变换彩色图像融合(含评价指标)【含Matlab源码 1756期】
  14. AutoCAD2015 下载安装教程与使用技巧(已测有效)
  15. 明解C语言(入门篇)第十一章
  16. DUKE大学BOE数据集 OCT图像积液分割/层分割数据集
  17. 我对“结构化思维”的理解 - 直播分享
  18. Swift 3DTouch开发 自定义ShortcutItems
  19. 终极单词index 排序 K-L
  20. 【Java】JDK目录介绍

热门文章

  1. 超详细mysql left join,right join,inner join用法分析
  2. MySQL 存储过程的基本用法
  3. 201803-2碰撞的小球
  4. mysql-零基础安装
  5. jmeter参数化之用户参数
  6. 控制台打印列未定义错误
  7. JavaScript中的坐标
  8. 使用dbms_stats.gather_table_stats调整表的统计信息
  9. 《软件工程》课程设计总结
  10. java-final关键字