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. 图解slub

    1.前言 在Linux中,伙伴系统(buddy system)是以页为单位管理和分配内存.但是现实的需求却以字节为单位,假如我们需要申请20Bytes,总不能分配一页吧!那岂不是严重浪费内存.那么该如 ...

  2. laravel部署创建新项目 助记

    打开进入homestead虚拟机,并进入code文件夹 cd ~/homestead && vagrant up && vagrant ssh cd ~/Code 进行 ...

  3. 复制命令(ROBOCOPY)

    ROBOCOPY 命令: // 描述: 相比较 xcopy.copy 来说,复制的功能就强大很多,  xcopy.copy 是单线程的,robocopy是多线程的,但是和一些专业的复制软件相比速度还是 ...

  4. MongoDB在Linux系统下的安装与启动

    Mongodb介绍 MongoDB是一个开源文档数据库,提供高性能,高可用性和自动扩展,官方文档:https://docs.mongodb.com/manual/introduction/ Mongo ...

  5. LeetCode算法题-Average of Levels in Binary Tree(Java实现)

    这是悦乐书的第277次更新,第293篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第145题(顺位题号是637).给定一个非空二叉树,以数组的形式返回每一层节点值之和的平 ...

  6. 24 python初学(异常)

    try, except, else, finally执行顺序:1. 先执行 try 里面的代码块,如果发生异常就会去捕获. 2. 没有错误就会执行 else 里面的信息. 3. 无论怎样都会执行 fi ...

  7. TPYBoard开发板搭建,实现隐秘通信

    一.准备工作 lTPYBoard v102(简称v102) 1块 lTPYBoard v202(简称v202) 1块 l杜邦线.MicroUSB数据线 若干 (成本100元以内,某宝上可以买到) 附上 ...

  8. Google第三方网站登录(JavaScript SDK)

    官网:https://developers.google.com/identity/sign-in/web/ 一.创建应用 a.去谷歌控制台创建应用     网址:https://accounts.g ...

  9. 广师大学习笔记之文本统计(jieba库好玩的词云)

    1.jieba库,介绍如下: (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组:除此之外,jieba 库还提供了增加自定 ...

  10. Elasticsearch通关教程(一): 基础入门

    简介 Elasticsearch是一个高度可扩展的.开源的.基于 Lucene 的全文搜索和分析引擎.它允许您快速,近实时地存储,搜索和分析大量数据,并支持多租户. Elasticsearch也使用J ...