摘要:随着云计算技术的飞速发展,Redis作为一种高性能的内存数据库,在各种应用场景中发挥着越来越重要的作用。为了满足不同用户对Redis性能的高要求,华为云推出了Flexus X实例,并提供了加速Redis的选项。本文旨在通过实际测试,展示华为云Flexus X实
前言
随着云计算技术的飞速发展,Redis作为一种高性能的内存数据库,在各种应用场景中发挥着越来越重要的作用。为了满足不同用户对Redis性能的高要求,华为云推出了Flexus X实例,并提供了加速Redis的选项。本文旨在通过实际测试,展示华为云Flexus X实例在加速Redis方面的性能优势,并与其他业界U1实例进行对比。
一、华为云Flexus X加速Redis购买
1.1 Flexus X实例购买
在开始本文的实践之前,需要在华为云官网上购买Flexus X实例,这个一般可以根据自己的实际需求项目选择合适的配置,比如CPU、内存、存储和网络带宽等。
1.2 Redis加速镜像选择
Flexus X实例强大之处,预装Redis加速镜像的选项,使得开发者在项目部署的时候免去Redis安装,同时主要其X-Turbo加速技术和智能应用调优算法,能够自动优化Redis的性能,减少了手动调优的需求,对于Redis使用频繁的建议选择此镜像。
购买成功后,可以在华为云控制台中看到刚刚购买的Flexus X实例服务器,本文已购买的4核12G的实例,详细配置如下,其中包含Redis加速镜像。
1.3 重置密码
这里需要注意的是,首次购买后,需要重置服务器的登录密码,以便能够远程登录到服务器中。在华为云控制台中,找到Flexus云服务器X实例,点击“重置密码”按钮,然后按照提示设置新的登录密码。
1.4 登录Flexus X实例
接下来就可以登录到Flexus云服务器X实例中,进入终端之后,会提示 Welcome to Huawei Cloud Service,说明成功登录。
1.5 Flexus X实例Redis验证
进入Flexus云服务器X实例终端,使用redis-cli命令即可进入Redis容器中,可以看出使用Flexus X实例部署Redis加速镜像,预安装性能优化后的Redis 6.2应用,相对传统服务器安装Redis,开发者不需关心各种安装依赖、编译源码等步骤,简化了Redis的安装和配置过程,降低了技术门槛。
编
二、Redis测评工具介绍
本文Redis测评使用的是内置的redis-benchmark,redis-benchmark作为Redis服务器内置的性能测试工具,发挥着至关重要的作用。它能够模拟高并发场景下的客户端请求,全面评估Redis在不同工作负载和配置环境下的性能表现。通过执行一系列标准化的基准测试,如SET/GET操作、并发连接处理、多线程性能以及不同数据规模下的响应能力,
性能测试:涵盖SET/GET多种操作、并发连接测试、多线程测试和数据大小测试,全面评估Redis的性能。参数配置:提供丰富的配置选项,允许用户根据实际需求调整并发连接数、数据大小、执行命令的类型等参数。在使用Redis Benchmark之前,需确保Redis服务器已正确安装并处于运行状态。通过命令行执行redis-benchmark 命令。
redis-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 100
这条命令将模拟100个并发客户端,对SET和GET操作等多种操作进行总计100,000次的性能测试。
由于redis-benchmark会对所有操作进行模拟测试,并且测试指标也很多,本次实践对比Redis的五种基本数据类型(string、hash、list、set、zset)的请求响应时间(qps)和吞吐量。
三、华为云Flexus X实例加速Redis测评
在上述购买Flexus X实例已选择加速Redis安装,接下来就可以使用Redis Benchmark工具,对华为云Flexus X实例上Redis的五种基本数据类型(string、hash、list、set、zset)进行了性能测评,并且重点关注请求响应时间(QPS)和吞吐量。
Flexus X实例终端窗口执行以下测试命令,也就是模拟100个并发客户端,总请求数100,000次。
redis-benchmark -p 6379 -a 123456 -c 100 -n 100000
等待执行完成,控制台会输出redis各种操作类型的测试结果,下面截取string、hash、list、set、zset这五种类型进行分析。
3.1 string类型
首先先看最基本的操作string类型的set操作:
重点指标数据如下:
QPS:高达182,481.77请求/秒吞吐量:平均每秒处理约182,481.77个SET请求100,000操作,0.55s完成接下来是操作string类型的get命令:
QPS:高达182,481.77请求/秒吞吐量:平均每秒处理约182,481.77个GET请求100,000操作,0.55s完成3.2 hash类型
接下来在分析,hash数据类型,使用Flexus X实例加速Redis最终测试结果如下:
QPS:高达193,423.59请求/秒吞吐量:平均每秒处理约193,423.59个HSET请求100,000操作,0.52s完成3.3 list类型
第三个是list类型,这个也是在平时开发中常用的数据结构,测验结果如下,主要分析LPUSH操作。
QPS:高达196,463.66请求/秒吞吐量:平均每秒处理约196,463.66个LPUSH请求100,000操作,0.51s完成3.4 set类型
第四个是set类型,压测结果如下:
QPS:高达190,839.70请求/秒吞吐量:平均每秒处理约190,839.70个SADD请求100,000操作,0.52s完成3.5 zset类型
最后一个是zset类型,也就是不可重复结合,压测结果如下:
QPS:高达197628.47请求/秒吞吐量:平均每秒处理约197628.47个ZADD请求100,000操作,0.51s完成通过上述测评结果,可以看出华为云Flexus X实例在加速Redis操作方面表现出色。不同数据类型的QPS和吞吐量均达到了较高的水平,延迟也控制在合理范围内。特别是对于SET、GET、HSET、HGET等常见操作,性能表现尤为突出,100,000操作,基本都在0.5s左右完成。
四、华为云Flexus X实例无加速Redis测评
上述是分析了华为云Flexus X加速Redis实例,接下来同样也是用Flexus X实例,配置也是4h12G,但是未使用华为Redis加速进行,进行redis压测分析。同样也是执行下面命令:
redis-benchmark -p 6379 -a 123456 -c 100 -n 100000
4.1 string类型
也是截取string类型的set测试结果:
吞吐量: 145,137.88 请求/秒100,000操作,0.72s完成接下来是操作string类型的get命令结果:
吞吐量: 141,242.94 请求/秒100,000操作,0.71s完成4.2 hash类型
吞吐量: 141,843.97 请求/秒100,000操作,0.70s完成4.3 list类型
吞吐量: 143,472.02 请求/秒100,000操作,0.70s完成4.4 set类型
吞吐量: 146,842.88 请求/秒100,000操作,0.68s完成4.5 zset类型
吞吐量: 151,515.14 请求/秒100,000操作,0.66s完成华为云Flexus X实例在未使用Redis加速的情况下,压测结果显示各数据类型性能表现良好。String类型的Set和Get操作分别达到145,137.88和141,242.94请求/秒的吞吐量。Hash、List和Set类型的吞吐量也均超过140,000请求/秒,其中Set类型最高,达146,842.88请求/秒。Zset类型表现最佳,吞吐量高达151,515.14请求/秒。总体上,Flexus X实例在未加速状态下仍展现出优秀的Redis性能,能满足大多数应用场景的需求。
五、业界U服务实例Redis测评
接下来使用业界U服务实例Redis性能测评,为了保证在结果的准确性,本次使用的是阿里云U1实例,配置是4核16G,具体实例配置如下:
进入服务器终端,进行redis压测分析。同样也是执行下面命令:
redis-benchmark -p 6379 -a 123456 -c 100 -n 100000
5.1 string类型
string类型的set压测分析结果如下
吞吐量:28936.10 请求/秒100,000操作,3.46s完成操作string类型的get命令测试结果如下:
吞吐量: 29248.32 请求/秒100,000操作,3.42s完成5.2 hash类型
吞吐量: 29411.76 请求/秒100,000操作,3.40s完成5.3 list类型
吞吐量: 30459.95 请求/秒100,000操作,3.28s完成5.4 set类型
吞吐量: 30102.35 请求/秒100,000操作,3.32s完成5.5 zset类型
吞吐量: 27631.94 请求/秒100,000操作,3.62s完成阿里云U1实例的Redis性能测评显示,各数据类型的吞吐量均达到较高水平。String类型的Set和Get操作吞吐量分别为28,936.10和29,248.32请求/秒,完成100,000操作需约3.4秒。Hash类型吞吐量为29,411.76请求/秒,List类型最高,达30,459.95请求/秒,Set类型为30,102.35请求/秒。Zset类型相对较低,为27,631.94请求/秒。总体而言,U1实例在Redis性能上表现稳定,适合多种应用场景。
六、三种实例对比结果
经过三种服务器Redis实际性能压测对比,为了使得对比更加明显,根据上述数据,总结如下表:
数据类型
华为云Flexus X实例加速Redis
华为云Flexus X实例无加速Redis
业界U服务实例Redis
String (SET)
QPS: 182,481.77
吞吐量: 145,137.88
吞吐量: 28,936.10
吞吐量: 182,481.77
100,000操作,0.55s完成
100,000操作,3.46s完成
100,000操作,0.55s完成
String (GET)
QPS: 182,481.77
吞吐量: 141,242.94
吞吐量: 29,248.32
吞吐量: 182,481.77
100,000操作,0.71s完成
100,000操作,3.42s完成
100,000操作,0.55s完成
Hash (HSET)
QPS: 193,423.59
吞吐量: 141,843.97
吞吐量: 29,411.76
吞吐量: 193,423.59
100,000操作,0.70s完成
100,000操作,3.40s完成
100,000操作,0.52s完成
List (LPUSH)
QPS: 196,463.66
吞吐量: 143,472.02
吞吐
吞吐量: 196,463.66
100,000操作,0.70s完成
100,000操作,3.28s完成
100,000操作,0.51s完成
Set (SADD)
QPS: 190,839.70
吞吐量: 146,842.88
吞吐量: 30,102.35
吞吐量: 190,839.70
100,000操作,0.68s完成
100,000操作,3.32s完成
100,000操作,0.52s完成
Zset (ZADD)
QPS: 197,628.47
吞吐量: 151,515.14
吞吐量: 27,631.94
吞吐量: 197,628.47
100,000操作,0.66s完成
100,000操作,3.62s完成
100,000操作,0.51s完成
根据上述表格数据,可以看出华为云Flexus X实例加速Redis遥遥领先,具体优势如下:
高性能:
在所有测试的数据类型(String, Hash, List, Set, Zset)中,华为云Flexus X实例加速Redis的QPS和吞吐量均显著高于其他两个对比实例(华为云Flexus X实例无加速Redis和业界U服务实例Redis)。特别是在List和Zset类型的操作上,其QPS分别达到了196,463.66和197,628.47,显示了其在处理这些类型数据时的强大性能。快速响应:
对于所有的数据类型操作,华为云Flexus X实例加速Redis都能在非常短的时间内(约0.51s到0.55s)完成100,000次的操作,这表明它具有出色的响应速度。加速效果显著:
与华为云Flexus X实例无加速Redis相比,加速后的实例在各项指标上都有明显的提升。例如,在String类型的set操作上,无加速实例的吞吐量为145,137.88请求/秒,而加速后的实例则达到了182,481.77请求/秒,提升幅度超过25%。领先业界:
即使与业界U服务实例Redis相比,华为云Flexus X实例加速Redis也展现出了明显的优势。在大部分数据类型的操作上,其性能都远超业界实例。总结
经过详细的测试和对比,华为云Flexus X实例在加速Redis方面展现出了卓越的性能。无论是在QPS、吞吐量还是响应时间上,都显著优于未加速的Flexus X实例和业界U服务实例Redis。特别是在处理复杂数据类型时,其性能更是达到了业界领先水平。这主要得益于Flexus X实例预装的Redis加速镜像及其内置的X-Turbo加速技术和智能应用调优算法。这些先进技术不仅简化了Redis的安装和配置过程,还大大提升了Redis的整体性能。
来源:互联网播客