ASP.NET Core微服务(六)——Redis效率与sqlserver数据库对比

简介: ASP.NET Core微服务(六)——Redis效率与sqlserver数据库对比

Redis核心原理

Redis单线程为什么还能这么快

Redis所有的数据都是在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性能损耗的问题。正因为Redis是单线程,所以要小心使用Redis指令,对于那些耗时的指令(比如keys),一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。


Redis单线程为何能处理那么多的并发客户端连接


Redis的IO多路复用:redis利用epoll(epoll 是Linux内核中的一种可扩展IO事件处理机制)来实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器。


redis一万次set测试

RedisDBHelper

using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Text;
namespace demo_20221010_redis
{
    class RedisDBHelper
    {
        private ConnectionMultiplexer redis { get; set; }
        public IDatabase db { get; set; }
        /// <summary>
        /// 其实有个链接就行,一般都是默认本地。如果不是就再传
        /// </summary>
        /// <param name="connection"></param>
        public RedisDBHelper(string connection)
        {
            redis = ConnectionMultiplexer.Connect(connection);
            db = redis.GetDatabase();
        }
    }
}


测试主函数

 

static void Main(string[] args)
        {
            RedisDBHelper redis = new RedisDBHelper("127.0.0.1:6379");
            DateTime start = DateTime.Now;
            for (int i = 0; i < 10000; i++)
            {
                //redis.db.StringSet("key" + i, "666");
                Console.WriteLine(redis.db.StringGet("key" + i));
            }
            DateTime end = DateTime.Now;
            Console.WriteLine(end - start);
        }

Redis进行一万次的set操作共计消耗时间2.27秒


image.png


Redis进行一万次的get操作


sqlserver实验

这里前两天我做过实验了,数据是一个自增列,一个Name列,两列信息,添加一万次数据,总计消耗时间是13.5秒左右。我用的是DBHelper的方法,原生的那种你那个,速度应该是最快的,但是可以看到来与Redis的茶具还是非常大的呢。


我是使用的笔记本电脑进行测试的,如果使用PC机效果会更好。


演示的项目一不小心删掉了。但是我记得数据我就写上了。实际情况也可以自己测试。我这有现成的DBHelper,复制获取用用。

相关文章
|
9月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1441 152
|
9月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1053 156
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
721 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
9月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
10月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
429 5
|
9月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
544 158
|
9月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
9月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
594 156
|
9月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
701 161