Redis扩展机制扫盲

                                      作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  关于Redis的Avalibility解决方案有很多,比如Twemproxy,Codis,

一.Twemproxy(Twitter)

1>.代理分配机制

2>.优点

  非常稳定,企业级解决方案。

3>.缺点 

  单点故障

  需依赖第三方软件,如Keepalived。

  无法平滑地横向扩展

  没有后台界面

  代理分片及政治引入更多的来回次数并增大延迟

  单核模式,无法充分利用多喝,除非多实例

  Twitter官方内部不在继续使用twemproxy解决方案

二.Codis(豌豆荚实现开源的)

1>.代理分配机制

2>.2014年11月开源

3>.基于Go以及C语言开发

4>.优点

  非常稳定,企业级方案

  数据自动平衡

  高性能

  简单的测试显示较Twemproxy快一倍

  善用多核CPU

  简单(没有Paxos类的协调机制,没有主从复制)

  有后台界面

5>.缺点

  代理分配机制更引入更多的来回次数并增大延迟

  需要第三方软件支持协调机制(目前支持zookeeper及Etcd)

  不支持主从复制,需要另外实现

  Codis采用了Proxy的方案,所以必然会带来单机性能的损失(经测试,在不开pipeline的情况下,大概会损失40%左右的性能)

三.Redis Cluster(官方)

1>.官方实现

2>.需要Redis 3.0或更高版本

3>.优点

  无中心的P2P Gossip分散式模式

  更少的来回次数并降低延迟

  自动于多个Redis节点进行分片

  不需要第三方软件支持协调机制

4>.缺点

  依赖于Redis 3.0或更高版本

  没有后台界面

  需要智能客户端(Redis客户端必须支持Redis Cluster架构)

  较Codis有更多的维护升级成本

四.Cerberus(芒果TV)

1>.优点

  数据自动平衡

  本身实现了Redis的Smart Client

  支持读写分离

2>.缺点

  依赖Redis 3.0或更高版本

  代理分片机制引入更多的来回次数并增大延迟

  需要时间验证其稳定性

  没有后台界面

Redis扩展机制的更多相关文章

  1. Dubbo中SPI扩展机制解析

    dubbo的SPI机制类似与Java的SPI,Java的SPI会一次性的实例化所有扩展点的实现,有点显得浪费资源. dubbo的扩展机制可以方便的获取某一个想要的扩展实现,每个实现都有自己的name, ...

  2. 美团针对Redis Rehash机制的探索和实践

    背景 Squirrel(松鼠)是美团技术团队基于Redis Cluster打造的缓存系统.经过不断的迭代研发,目前已形成一整套自动化运维体系,涵盖一键运维集群.细粒度的监控.支持自动扩缩容以及热点Ke ...

  3. Windows下安装Redis服务及安装PHP的Redis扩展

    Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(valu ...

  4. Redis分片机制

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 前两篇文章对Redis主从复制和主从切换的知识点进行了介绍,但是也很明显的有一点小弊端: 需要定时进行主从复制 ...

  5. 聊聊 Spring 的 XML Schema 扩展机制的使用方式

    前言 在当前Java生态,Spring算的上是最核心的框架,所有的开发组件想要得到大范围更便捷的使用,都要和Spring进行整合,比如我们熟知的Mybatis.Dubbo等,以及内部封装的各类组件包括 ...

  6. mac机上搭建php56/nginx 1.8.x/thinkphp 3.2.x/gearman扩展/seaslog扩展/redis扩展环境

    php的各种扩展配置起来实在不容易,记录一下备忘: 一.php56 安装 虽然php7出来了,但是没用过,不知道有没有坑,这里仍然使用php5.6版本 1.1 安装php/php-pfm brew u ...

  7. 编译安装PHP7并安装Redis扩展Swoole扩展

    编译安装PHP7并安装Redis扩展Swoole扩展 在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么 ...

  8. win10 64位安装memcache扩展和开启redis扩展

    前面有关于win10下搭建wamp环境的介绍,在此不在赘述,php操作memcache有memcache库和memcached库,其中memcache是php内置的扩展库,支持面向对象和面向过程两种操 ...

  9. Redis Sentinel机制与用法说明【转】

    本文来自:https://segmentfault.com/a/1190000002680804 概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Ma ...

随机推荐

  1. JavaScript -- JSON.parse 函数 和 JSON.stringify 函数

    JavaScript -- JSON.parse 函数 和 JSON.stringify 函数 1. JSON.parse 函数: 使用 JSON.parse 可将 JSON 字符串转换成对象. &l ...

  2. SQLServer之创建主XML索引

    创建主XML索引注意事项 若要创建主 XML 索引,请使用 CREATE INDEX (Transact-SQL) Transact-SQL DDL 语句. XML 索引不完全支持可用于非 XML 索 ...

  3. 码农人生——从未学过Android如何开发Android App 案例讲解-第002期案例

    标题有点晃眼,本次分享是002期博文的实践故事,不会有任何代码.也不会教别人android 如何开发,类似博文已经有大批大批,而且还会有陆陆续续的人写,我写的文章,主要是经验之谈,希望总结出的一些方法 ...

  4. 面向对象_new,__eq__,__hash__

    老师博客:http://www.cnblogs.com/Eva-J/articles/7351812.html __new__ __init__是一种初始化的方法 __new__是构建方法,创建一个对 ...

  5. vue 组件开发、vue自动化工具、axios使用与router的使用(3)

    一. 组件化开发 1.1 组件[component] 在网页中实现一个功能,需要使用html定义功能的内容结构,使用css声明功能的外观样式,还要使用js定义功能的特效,因此就产生了一个功能先关的代码 ...

  6. vue 快速入门、常用指令(1)

    1. vue.js的快速入门使用 1.1 vue.js库的下载 vue.js是目前前端web开发最流行的工具库之一,由尤雨溪在2014年2月发布的. 官方网站 中文:https://cn.vuejs. ...

  7. Java Api Consumer 连接启用Kerberos认证的Kafka

    java程序连接到一个需要Kerberos认证的kafka集群上,消费生产者生产的信息,kafka版本是2.10-0.10.0.1: Java程序以maven构建,(怎么构建maven工程,可去问下度 ...

  8. Use of Recv-Q and Send-Q

    From my man page: Recv-Q Established: The count of bytes not copied by the user program connected to ...

  9. JSP七大动作

  10. Python排序算法——冒泡排序

    有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10786904.html 一.冒泡排序(Bubb ...