Redis特性分析

本文介绍了阿里巴巴的分布式消息中间件Metaq,强调其高性能、高可用性和可扩展性等特点,并通过与Redis的对比,展示了两者在消息队列及缓存方面的不同优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在看阿里技术嘉年华的时候看到了张乐伟分享的淘宝消息中间件演变,讲的是Metaq, http://adc.alibabatech.org/
追溯到Metaq的核心开发人员庄晓丹 分布式消息中间件 MetaQ 作者庄晓丹专访         ,为下文将rdis作铺垫

一、Metaq介绍
全称Metamorphosis,是一个高性能、高可用、可扩展的分布式消息中间件,起源于LinkedLn的Kafka。具有消息存数顺序写、吞吐量大和支持本地和XA(分布式交易处理的规范 )事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景。先看下性能测试报告:

硬件

  • CPU 16核 intel
  • 内存 24G
  • 磁盘 SAS 15000转,RAID 10
软件
  • JDK6
  • RedHat 5.x
  • Metaq java client

场景

           单个消息生产者客户端,并发100个线程,使用同一个producer发送消息,并启动订阅者消费。

  • 同组和不同组:是指10个consumer是否同一个分组,如果是同一个分组则共同分担消费同一个topic;否则,每个consumer完整消 费该topic。通俗地说,同组就是一条消息只会被分组内一个consumer消费,不同组,则一条消息会被每个consumer消费。


MetaQ在淘宝每日有十亿级别的消息流转,在支付宝有百亿级别的消息流转( 作为storm的spout源),在阿里B2B也有部分应用 ,AVOS.com在使用它作为后端系统的消息中间件。还有部分公司在尝试使用,例如腾讯、京东等。然而,Metaq 需要依赖zookeeper ,不如redis等轻量。

二、Redis

Redis既可以当 Cache又可以当 Queue,这里与Memcached稍作比较存在,Memcached存在Object Size的问题,由于SQL未作优化直接映射对象,导致缓存对象大于1MB,Memcached就抛了异常。
而Redis默认缓存对象512MB,最大支持1GB。至少在缓存对象时,可以有更大的伸缩空间了!此外,Memcached比较简单,而Redis可以支持更多复杂的数据类型,如HASH、SET、SortedSet等等。

更多详细的比较cankao《 Redis与Memcached的区别 
总体来说快速的原因如下: 
1)绝大部分请求是纯粹的内存操作(非常快速) 
2)采用单线程,避免了不必要的上下文切换和竞争条件
内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间 

Redis的使用入门,可参考文《 征服 Redis

关于Epoll以及Redis的持久化,后续再讲。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值