.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

blncle 2020-03-20

.Net 性能优化--缓存,主要有内存缓存,分布式缓存,http缓存

分布式缓存

接着上篇的.Net 性能优化--缓存--内存缓存的讲,如有不清晰的地方请参考上篇文章.Net 性能优化--缓存--内存缓存

上上篇的.Net 性能优化--缓存--内存缓存说的是使用asp.net core 自带的扩展 Microsoft.Extensions.Caching.Memory来进行缓存的处理,

IMemoryCache缓存处理对于单个应该用程序是很方便,但是对于集群的话就存在一个致命的问题,就是各个集群之间无法相互访问,同时一旦应用程序关闭,那么缓存全部就都没有了,

为了解决这个问题我们引出了分布式缓存,那么本篇主要使用分布式来处理缓存,对于分布式缓存有2种,一是redis 缓存,二是sqlserver 缓存,上篇讲了分布式-redis缓存,本篇讲分布式-sqlserver缓存

分布式-sqlserver缓存

1、使用NuGet添加项目引用 Microsoft.Extensions.Caching.SqlServer

2、在Startup中注册服务,如下:

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

3、在HomeController中添加如下内容:

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

4、在Privacy.cshtml添加如下内容

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

5、创建一个sqlserver 数据库的表,这个表用来存储sqlserver 缓存的,可以手动去创建,也可以使用sql-cache工具去创建(建议使用工具,本文使用的sql-cache工具),

要使用sql-cache工具,就要先在电脑中安装了sql-cache工具,安装sql-cache工具命令如下:

win+ R ,打开cmd 输入:dotnet tool install --global dotnet-sql-cache --version 3.1.1                  dotnet全局 安装指定版本的 sql-cache工具,

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

注意:上述虽然安装成功了,但是提示 :工具目录 “C:\Users\Administrator\.dotnet\tools” 目前不在PATH环境变量中,

接下来需要卸载重新安装以及设置环境变量

由于本作者使用的是vs2019最新版本以及netcore 最新的,所以sql-cache的版本要和.netcore的版本保持一致需要安装最新版本,后面不添加 ----version 即为安装最新版本

C:\Users\Administrator>dotnet tool uninstall dotnet-sql-cache --global

已成功卸载工具“dotnet-sql-cache”(版本“3.1.1”)。

C:\Users\Administrator>dotnet tool install --global dotnet-sql-cache

已成功卸载工具“dotnet-sql-cache”(版本“3.1.2”)。

C:\Users\Administrator>dotnet tool uninstall dotnet-sql-cache --global

已成功卸载工具“dotnet-sql-cache”(版本“3.1.2”)。

//设置环境变量

C:\Users\Administrator>setx PATH "%PATH%;C:\Users\Administrator\.dotnet\tools"

成功: 指定的值已得到保存。

C:\Users\Administrator>dotnet tool install --global dotnet-sql-cache

由于刚安装了 .NET Core SDK,因此在运行安装的工具之前,需要重新打开命令提示符窗口。

可使用以下命令调用工具: dotnet-sql-cache 已成功安装工具“dotnet-sql-cache”(版本“3.1.2”)。

C:\Users\Administrator>

设置环境变量之后提示需要重新打开命令提示符窗口,这是关掉cmd窗口,重新打开,win+ R ,打开cmd,输入:dotnet tool install --global dotnet-sql-cache

Microsoft Windows [版本 10.0.17763.1131]

(c) 2018 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>dotnet tool install --global dotnet-sql-cache
已安装工具“dotnet-sql-cache”。

输入:dotnet tool install --global dotnet-sql-cache,提示已安装,则表示dotnet-sql-cache安装成功,并设置了环境变量,下面就是创建数据库

输入:dotnet sql-cache create "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;" dbo mysqlserverCache

C:\Users\Administrator>dotnet sql-cache create "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;" dbo mysqlserverCache
Table and index were created successfully.

C:\Users\Administrator>

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

master数据库下的dbo框架下的mysqlserverCache表创建成功

打开数据库可以看到

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

5、运行

运行项目,结果如下

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

 6、在上图运行结果中发现 数据库中的时间格式不对,这是因为时区设置不对,是默认的时区,没有设置成当前的时区,

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

 设置时区,如下:

新建MySystemClock时钟类,该类MySystemClock继承ISystemClock,代码如下:

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

在Startup中注册服务修改如下如下:

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

 运行结果

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存

相关推荐