CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

这篇具有很好参考价值的文章主要介绍了CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

前几天,点开自己的博客,看了一下 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 版本:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

直接运行编绎的exe程序结果:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

StackExchange.Redis 测试结果:

使用 StackExchange.Redis 当前最新版本:V2.7.27

考虑到 StackExchange.Redis 默认是单线程,因此提前设置最低线程池,不然会抛异常。

 ThreadPool.SetMinThreads(128, 128);

VS2022 中直接运行 Release 版本:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

运行编绎后程序 exe 结果:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

redis-benchmark.exe 测试结果:

运行结果1:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

运行结果2: 

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

 运行结果3:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

 运行结果4:

CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis

总结:

具体的性能指标,应该结合自身业务和生产环境,测试出适合自身要求的指标。

下面就来看看总结词吧:

1、Redis 自带测试工具

单线程时,能跑到2w/s,为啥6核下,最高也是6w/s出头,而不是2W*6=12W呢?

Redis 是一个单线程的内存数据库,它的性能受限于单个 CPU 核心的处理能力。即使在多核处理器上运行 Redis,它也只能利用其中一个核心进行处理,所以无法直接通过简单地将单核性能乘以核心数来计算多核性能。

在一个六核处理器上运行 Redis,虽然有多个核心可供利用,但 Redis 本身仍然是单线程的,因此最高的吞吐量受限于单个核心的性能。虽然可以同时处理多个请求,但每个请求仍然只能在一个核心上依次执行,不能完全实现性能的线性增长。

此外,Redis 在处理请求时还会涉及到锁竞争、线程切换等开销,这些因素也会限制其在多核处理器上的性能表现。因此,尽管在多核处理器上运行 Redis 会比单核处理器有一定的性能提升,但不会达到简单地将单核性能乘以核心数的增长幅度。

2、StackExchange.Redis 测试结果总结:

在VS2002中启动运行时,单线程时,性能特别低,只有4000/s上下,这不禁让我想起上一份测试的结果,是不是也是受这种运行模式影响。

在直接运行exe程序,单线程时,在1W/s左右,8线程下到5.2w/s出头。

16线程之后,突飞猛进了,突破 Redis自身极限,达到10-20w/s ?

听说StackExchange.Redis 从2.X 版本后,重构了代码,在资源管够的情况下,将代码从单条提交串行转批量提交,因此就有了这种测试结果。

3、CYQ.Data Redis 测试结果总结:

在VS中启动运行,和直接运行启动,两者性能相差不大。

单线程时,在1.5w/s左右,多线程下到5.2w/s,效果基本稳定在5w/s上下。

整体 CYQ.Data Redis 表现是不错的,常规调用性能比 StackExchange.Redis 高一些(去掉它鸡贼的批量方式)。

目前 CYQ.Data 未提供批量方法调用,后续会考量,是否引入这种自动批量处理方式,或提供批量调用入口。

目前机制下,可以通过增加 Redis 服务数量来提升并发性能。文章来源地址https://www.toymoban.com/news/detail-839286.html

到了这里,关于CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Data Redis 在Java中操作Redis

    目录 1. 添加依赖   2. 配置连接信息 3. 配置 RedisConnectionFactory 和 RedisTemplate 4.在Java中操作Redis 4.1. String 类型操作 4.2 List 类型操作 4.3 Set 类型操作 4.4 Hash类型操作 4.5 sorted set类型操作     Spring Data Redis 是 Spring Data 项目的一部分,它为 Java 应用程序提供了在 Spring 环境中与

    2024年01月18日
    浏览(67)
  • Spring Data Redis:在Java中操作Redis

    目录 一、Spring Data Redis使用方式 1.1 介绍        1.2 配置  1.3 RedisTemplate 二、环境搭建  2.1 导入Spring Data Redis的maven坐标 2.2 配置Redis数据源   2.3 编写配置类,创建RedisTemplate对象   三、操作常见类型数据 3.1 操作字符串类型数据 3.2 操作哈希类型数据   3.3 操作列表类型

    2024年02月14日
    浏览(35)
  • 如何在Java中操作Redis(使用Jedis和Spring Data Redis来操作Redis)

    在Java中,我们可以使用Jedis和Spring Data Redis来操作Redis。 一、使用Jedis操作Redis Jedis是一个流行的Java Redis客户端,提供了丰富的API来操作Redis。下面是使用Jedis操作Redis的步骤: 添加依赖 创建Jedis实例 执行Redis命令 关闭连接 使用Jedis,我们可以方便地执行各种Redis命令,例如设

    2024年02月16日
    浏览(40)
  • TDengine 压缩性能实际测试(对比 DolphinDB )

    公司项目需要,对两个国产时序数据库 TDengine 与 DolphinDB 做了压缩比测试。 测试数据来源于 TDengine 官方的性能测试工具 Benchmark。 先上结果:DolphinDB 压缩比优于 TDengine 1.65 倍 TDengine TDengine 是一款开源、云原生的时序数据库(Time Series Database),专为物联网、工业互联网、金

    2024年02月05日
    浏览(39)
  • 爆肝整理,性能测试-测试工具选型(各个对比)卷起来...

    性能测试和功能测试不同,性能测试的执行是基本功能的重复和并发,需要模拟多用户,在性能测试执行时需要监控指标参数,同时性能测试的结果不是那么显而易见,需要对数据进行分析。这些特点决定了性能测试更适合通过工具来完成。 从性能测试的定义的角度来分析,

    2024年02月16日
    浏览(47)
  • A30、V100性能测试对比报告

    一,基础配置对比 卡型 架构 卡数 显存 CUDA GPU Driver (TDP)能源消耗 CPU核数(超线程) 内存大小 CPU型号 发布日期 备注 A30 Ampere 8 24G 11.0 450.51.06 165 Watt 48 252 AMD EPYC 7402 24-Core Processor 2021 PCIe V100 Volta 8 32G 11.4 470.57.02 250 Watt 80 503 Intel® Xeon® Gold 6230 CPU @ 2.10GHz 2017 NV Link 二,模型训练对

    2024年02月16日
    浏览(43)
  • GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

    GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的机遇,第一个是oprea的合作奖,第二个是用支持c#换来的微软的投资,第三个是虚幻

    2024年02月14日
    浏览(83)
  • Redis【性能 02】Redis-5.0.14伪集群和Docker集群搭建及延迟和性能测试(均无法提升性能)

    使用的是腾讯的云服务器 1核心2G内存50G存储 ,系统信息如下: 每个Redis节点必须要有一个备机,例如搭建3个节点的集群就要有6个Redis实例。 数据按照slots分布式存储在不同的Redis节点上,节点中的数据可共享,可以动态调整数据的分布。 可扩展性强,可以动态增删节点 ,最

    2024年02月05日
    浏览(46)
  • 性能测试分析案例-定位redis响应延迟

    预先安装 docker、sysstat 、git、make 等工具,如 apt install docker.io sysstat 案例由 Python 应用 +Redis 两部分组成。其中,Python 应用是一个基于 Flask 的应用,它会利用 Redis ,来管理应用程序的缓存,并对外提供三个 HTTP 接口: /:返回 hello redis; /init/:插入指定数量的缓存数据,如果

    2024年01月16日
    浏览(46)
  • redis性能测试及瓶颈分析调优

    一、简介 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API mysql与redis的区别: 类型上mysql是关系型数据库,而redis是缓存数据库; 作用上mysql用于持久化的存储数

    2024年02月06日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包