常见的redis集群方案有哪些优缺点?

  1. Twemproxy – Twitter
  2. Codis – 豌豆荚
  3. Redis Cluster – 官方
参与7

1同行回答

liucj2004liucj2004  其它 , undefined
Twemproxy:QQ图片20170503171412.png 多个同构twemproxy(配置相同)同时工作, 接受客户端的请求,根据hash算法,转发给对应的redis。优点:开发简单,对应用几乎透明历史悠久,方案成熟缺点:代理影响性能lvs和twemproxy会有节点性能瓶颈redis扩容非常麻烦twitter内部已放弃使用...显示全部

Twemproxy:

QQ图片20170503171412.png

QQ图片20170503171412.png

    多个同构twemproxy(配置相同)同时工作,
    接受客户端的请求,根据hash算法,转发给对应的redis。

优点:

  • 开发简单,对应用几乎透明
  • 历史悠久,方案成熟

缺点:

  • 代理影响性能
  • lvs和twemproxy会有节点性能瓶颈
  • redis扩容非常麻烦
  • twitter内部已放弃使用该方案,新使用的架构未开源

Codis:

QQ图片20170503171428.png

QQ图片20170503171428.png

ZooKeeper:
    存放路由表和代理节点元数据
    分发Codis-Config的命令
Codis-Config :
    集成管理工具,有web界面
Codis-Proxy :
    无状态代理,兼容Redis协议
    对业务透明
Codis-Redis:
    基于2.8版本,二次开发
    加入slot支持和迁移命令

优点:

     - 开发简单,对应用几乎透明
     - 性能比Twemproxy好
     - 有图形化界面,扩容容易,运维方便

缺点:

     - 代理依旧影响性能
     - 组件过多,需要很多机器资源
     - 修改了redis代码,导致和官方无法同步,新特性跟进缓慢
     - 开发团队准备主推基于redis改造的reborndb


Redis Cluster:

QQ图片20170503171554.png

QQ图片20170503171554.png

P2P模式,无中心化
把key分成16384个slot
每个实例负责一部分slot
客户端请求若不在连接的实例,该实例会转发给对应的实例。
通过Gossip协议同步节点信息

优点:

     - 组件all-in-box,部署简单,节约机器资源
     - 性能比proxy模式好
     - 自动故障转移、Slot迁移中数据可用
     - 官方原生集群方案,更新与支持有保障

缺点:

     - 架构比较新,最佳实践较少
     - 多键操作支持有限(驱动可以曲线救国)
     - 为了性能提升,客户端需要缓存路由表信息
     - 节点发现、reshard操作不够自动化
收起
农业其它 · 2017-05-03
浏览18842

提问者

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-05-03
  • 关注会员:1 人
  • 问题浏览:21275
  • 最近回答:2017-05-03
  • X社区推广