前言:
前几天,点开自己的博客,看了一下 CYQ.Data V5系列 都有哪些文章,
发现了一篇2019年写的:CYQ.Data 对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。
感觉文章中有些表述存有问题,不过不是重点。
重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的更新,有没有进步呢?
为了和之前的版本进行对比,好在当年有留下代码,就直接拿当年的代码来测试一下。
下面就来重新看一下新的测试结果:
测试环境:
本次测试为.Net Windown 版本,下次再测试.Net Core Linux 版本。
Win11 系统:6核16G内存
Redis 版本:redis_version:3.2.100
由于单机测试,受运行程序和Redis自身程序等多综合环境影响,测试结果仅供参考,用娱乐的心态看看即可。
测试代码:
见上一篇文章的测试代码:点击下载
CYQ.Data Redis 测试结果:
使用 CYQ.Data 当前最新版本:V5.9.2.7
VS2022 中直接运行 Release 版本:
直接运行编绎的exe程序结果:
StackExchange.Redis 测试结果:
使用 StackExchange.Redis 当前最新版本:V2.7.27
考虑到 StackExchange.Redis 默认是单线程,因此提前设置最低线程池,不然会抛异常。
VS2022 中直接运行 Release 版本:
运行编绎后程序 exe 结果:
redis-benchmark.exe 测试结果:
运行结果1:
运行结果2:
运行结果3:
运行结果4:
总结:
具体的性能指标,应该结合自身业务和生产环境,测试出适合自身要求的指标。
下面就来看看总结词吧:
1、Redis 自带测试工具
单线程时,能跑到2w/s,为啥6核下,最高也是6w/s出头,而不是2W*6=12W呢?
2、StackExchange.Redis 测试结果总结:
在VS2002中启动运行时,单线程时,性能特别低,只有4000/s上下,这不禁让我想起上一份测试的结果,是不是也是受这种运行模式影响。
在直接运行exe程序,单线程时,在1W/s左右,8线程下到5.2w/s出头。
16线程之后,突飞猛进了,突破 Redis自身极限,达到10-20w/s ?
3、CYQ.Data Redis 测试结果总结:
在VS中启动运行,和直接运行启动,两者性能相差不大。
单线程时,在1.5w/s左右,多线程下到5.2w/s,效果基本稳定在5w/s上下。
整体 CYQ.Data Redis 表现是不错的,常规调用性能比 StackExchange.Redis 高一些(去掉它鸡贼的批量方式)。
目前 CYQ.Data 未提供批量方法调用,后续会考量,是否引入这种自动批量处理方式,或提供批量调用入口。
目前机制下,可以通过增加 Redis 服务数量来提升并发性能。
评论区