一个简单的redis性能测试程序和性能测试结果

内存数据库中,redis性能是不错的了。对于它的性能测试,我们一般使用redis自带的工具benchmark进行。但有时用自带的测试,我们并不怎么觉得可靠,索性自己写个简单的程序,对比测一下。结果如下redis的性能如下:

 

COMMAND

TOTAL_NUM

PIPE_LINE

KEY_SIZE

VALUE_SIZE

RESULT

LIST_TST             

500000

10

10

1000

26469/s

LIST_TST

500000

10

10

500

42811/s

LIST_TST

500000

10

10

200

74738/s

LIST_TST

500000

10

10

100

119617/s

LIST_TST

500000

10

10

50

152439/s

LIST_TST

500000

10

10

20

182481/s

LIST_TST

500000

10

10

10

191570/s

LIST_TST

500000

10

10

5

203252/s

结论:从数据对比上看,随着Value长度的增大,List数据类型,执行效率下降,尤其是在200位以上下降明显。

LIST_TST

500000

10

1000

100

5022.0/s

LIST_TST

500000

10

500

100

35945/s

LIST_TST

500000

10

200

100

58823/s

LIST_TST

500000

10

100

100

81967/s

LIST_TST

500000

10

50

100

86058/s

LIST_TST

500000

10

20

100

98425/s

LIST_TST

500000

10

10

100

101419/s

LIST_TST

500000

10

5

100

118483/s

结论:从数据对比上看,随着Key长度的增大,LIST数据类型,执行效率下降。尤其KEY的长度达到500位时,下降明显,达到1000位时,对执行效率的影响几乎是灾难性的。

建议:Key的长度不大于100位.

下面是key的长度为10位时,关于pipeline对性能影响的测试数据。

LIST_TST

500000

100

10

100

152905/s

LIST_TST

500000

50

10

100

151515/s

LIST_TST

500000

20

10

100

128865/s

LIST_TST

500000

10

10

100

118764/s

LIST_TST

500000

5

10

100

91743/s

结论:LIST_TST从数据对比上看,随着pipeline 中追加命令的增加,对于数据类型,执行效率明显提升。但在50以后,提升幅度变得有限。这个也可能和机器本身性能极限有关。

SET_TST

500000

10

1000

100

4881.9/s

SET_TST

500000

10

500

100

35038/s

SET_TST

500000

10

200

100

56689/s

SET_TST

500000

10

100

100

82508/s

SET_TST

500000

10

50

100

96711/s

SET_TST

500000

10

20

100

110132/s

SET_TST

500000

10

10

100

111570/s

SET_TST

500000

10

5

100

117467/s

SET数据和LIST在REDIS中存储方式几乎一样,所以当KEY的长度达到500位以上时,对执行效率的影响也几乎是灾难性的。

下面一组数据是当数据类型为STRING,key的长度保持在20的时候,Value长度对redis性能的影响。

STR_TST

500000

10

20

1000

6624.2/s

STR_TST

500000

10

20

500

44843/s

STR_TST

500000

10

20

200

74183/s

STR_TST

500000

10

20

100

82508/s

STR_TST

500000

10

20

50

96711/s

STR_TST

500000

10

20

20

110132/s

STR_TST

500000

10

20

10

111570/s

STR_TST

500000

10

20

5

117467/s

结论:随着Value的增加,效率降低,当value的长度大于500时,效率一般,value的长度达到1000位时,几乎是灾难性的,效率很低。下面是一组关于pipeline数量对效率的影响数据。

STR_TST

500000

100

10

100

151515/s

STR_TST

500000

50

10

100

144927/s

STR_TST

500000

20

10

100

124069/s

STR_TST

500000

10

10

100

102040/s

STR_TST

500000

5

10

100

77881/s

结论:STR_TST从数据对比上看,key的长度保持在10的时候,随着pipeline 中追加命令的增加,STRING数据类型,执行效率提升明显。这个也可能和机器本身性能极限有关。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

经过简单的测试,和使用redis自带的测试工具benchmark的结果基本上是一致的,说明软件关于性能方面的说法,没有任何夸大之嫌。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值