Skip to content
echo edited this page May 18, 2012 · 1 revision

虽然其实没必要过多的去关心Redis的性能,因为Redis以及同类的工具比如淘宝开源的Tair或者Memcached本身性能都已经足够高了。无论你使用他们的哪一个,每秒处理请求数都不会成为瓶颈,瓶颈往往都在其他的地方,比如网络、IO等。为了确保Redis的性能不会由于客户端成为瓶颈而下降,我们还是对Tedis进行了简单的性能测试,并同时对Tair进行了相同环境的对比。

测试环境

redis:
开发机:linux虚拟机,内存2G,关闭snapshot,关闭aof,关闭vm,单实例
tair:
开发机:linux虚拟机,内存2G,mdb,一个cs服务和一个ds服务
client:
开发机:linux虚拟机

在client中分别模拟数据大小1024bytes和2048bytes,线程数10和100分别对redis和tair进行单个key、value的操作和批量操作(数量为10)

测试结果

总体看来在单机的情况下QPS基本上Tedis比Tair快2倍以上,响应时间tedis也比tair快,例如在1024bytesX10线程的情况下: 单个值get请求

tair:
time:30010 //测试总执行时间(ms)
total:230774 //测试总执行请求量
qps:7692
min:0.001001,max:522.133,avg:0.6500260010400416 //最小响应时间,最大响应时间,平均响应时间(ms)

tedis:
time:30013
total:583483
qps:19449
min:0.001001,max:137.009,avg:0.25708262635611084

在不同线程数场景下,tair的QPS基本稳定,redis在线程数100时较10时有较多提高,说明redis的性能瓶颈在客户端,还可以有提高

在不同数据大小场景下,qps有少量变化,主要应该来自于网络和序列化

测试分析

tedis目前主要还是单机使用,即使有数据sharding也是在客户端来做的;而tair是支持集群功能的。所以在单机情况下来做比较确实是对tair不太公平。 而tair在集群环境中由于key的不同数据分布到不同数据节点,能够整体取得更大的qps和数据容量。这一点是tedis在未来需要实现的。

这里所做的仅仅是将redis和tair的单实例进行了简单的对比,仅供参考。对tair的测试由于日常机器的原因没有官方公布的数据高也属于正常现象。 如有不对的地方,还望大家给我指出来:)

Tair的相关资料和原理请看这里:tair资料

Clone this wiki locally