您的位置:首页 > 数据库 > Redis

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

2016-07-25 17:02 525 查看
内存数据库中,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的结果基本上是一致的,说明软件关于性能方面的说法,没有任何夸大之嫌。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: