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

.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中注册服务,如下:

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

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

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工具,

注意:上述虽然安装成功了,但是提示 :工具目录 “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>

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

打开数据库可以看到

5、运行

运行项目,结果如下

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

设置时区,如下:

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

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

运行结果

原文地址:https://www.cnblogs.com/1175429393wljblog/p/12531421.html

时间: 2024-08-29 07:35:59

.Net 性能优化--缓存--分布式缓存 --sqlserver缓存的相关文章

应用服务器性能优化之分布式缓存-缓存基础

应用服务器就是处理网站应用的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多同时也是最重要.最基础的地方.可以说没有应用服务器就没有网站. 在我们介绍分布式缓存之前,因为考虑到很多览客和当初的我一样,对于什么是应用服务器,分布式缓存是什么样的概念都不清楚,所以我们就一步一步来,从基本的概念说起. 1.缓存基本原理 所谓的缓存是指将数据存储在相对访问速度较高的介质中,以供系统处理.一方面缓存访问速度快,可以减少数据的访问时间,另一方面如果缓存的数据是经过计算得到的,那么缓存的数据就无

应用服务器性能优化之分布式缓存-分布式缓存架构

分布式缓存是指缓存部署在多个服务器组成的服务器集群中,以集群的方式提供缓存服务,其架构方式主要有两种,一种是以JBoss Cache为代表的需要同步更新的分布式缓存,一种是以Memchached为代表的互不通信的分布式缓存. 1.JBoss Cache Jboss Cache的分布式缓存在集群中的每一台服务器都缓存相同的数据,当集群中的某台服务器的缓存数据更新时,会通知集群中的其他服务器更新或者清除缓存.JBoss Cache通常将应用程序和缓存部署在同一台服务器上,应用程序可以从本地快速获取缓

网站架构之性能优化

网站架构中最核心的几个要素包括:性能,可用性,伸缩性,扩展性和安全性,而性能又是其中最为重要的,本篇简要说下网站性能优化方面所需做的一些事情: 1. 网站性能问题概要 性能问题 说明 产生原因 大都是在用户高并发访问时产生的 主要工作 改善高并发用户访问情况下的网站访问速度 主要目的 改善用户体验,让用户觉得网站很快,一切的产品都必须站在用户的角度考虑问题 2. 网站性能测试 站在不同的视角,所关注的网站性能是不一致的: 视角 关注点 说明 用户视角 用户打开浏览器网页的响应速度,网页能再多长时

Web项目开发性能优化解决方案

web开发性能优化---安全篇 1.ip验证 2.操作日志.安全日志.登录日志 3.SQL注入校验 4.权限管理 5.验证规范(前端.后端.数据库约束) 2014-10-29 08:04 2773 web开发性能优化---扩展性能篇 1.实现代码分离 一个成熟的软件开发团队一般都不会完全手写代码,这里讲的代码分离只要是开发中用到的小技巧,通过底层框架+手工代码方式结合实现快速开发和快速扩展: 2.模块化开发 模块化结构开发,尽量减... 2014-10-29 08:03 2399 web开发性能

从web现状谈及前端性能优化

从web现状谈及性能优化 原文出处:<Karolina Szczur: The State of the Web> 性能优化指南The Internet is growing exponentially, and so is the Web platform we create. Often though we fail to reflect on the greater picture of connectivity and contexts the audience of our work

记录一次bug解决过程:可维护性和性能优化

一.总结 使用某些变量的地方在2次以上的,强烈建议使用枚举值来维护变量,日后方便扩展. 查数据库的方法调用,能合并就净量去合并. 二.Bug描述 枚举变量的维护以及方法使用: public class UsedOnce { public static enum ruleDetailsEnum { SOURCEREGIN("原区域"), TARGETREGIN("目的区域"), SOURCECITY("原城市"), TARGETCITY("

性能优化建议

性能优化建议 1.为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的.因为,我们某些查询语句会让MySQL不使用缓存.请看下面的示例: // 查询缓存不开启 $r = mysql_query("SELECT username F

高并发下linux系统、业务结构性能优化——index(不断更新)

工作中零零散散写了些博客,总结了些知识,当然是从运维的角度.东西一多就乱,闲时突发奇想,这些东西能不能打在一个点上,如果能有一个东西把所有内容串起来并且有一个主题岂不妙哉,也方便查阅和阅读,就像一个网站有了内容后需要一个index主页一样,哈哈,然后就有了这篇置顶博文. 对于主题,我喜欢研究业务架构和大并发相关知识,就定为"高并发下linux系统.业务结构性能优化"了,现有目录结构是根据工作经验进行的梳理,以后会动态修改.我的知识非常有限,不乏有些错误认识,不管怎样抛砖引玉分享出来,希

Linux性能优化实战: Linux 性能优化答疑(四)(32)

一.上节总结 专栏更新至今,四大基础模块的第三个模块——文件系统和磁盘 I/O 篇,我们就已经学完了.很开心你还没有掉队,仍然在积极学习思考和实践操作,并且热情地留言与讨论. 今天是性能优化的第四期.照例,我从 I/O 模块的留言中摘出了一些典型问题,作为今天的答疑内容,集中回复.同样的,为了便于你学习理解,它们并不是严格按照文章顺序排列的. 每个问题,我都附上了留言区提问的截屏.如果你需要回顾内容原文,可以扫描每个问题右下方的二维码查看. 二.问题 1:阻塞.非阻塞 I/O 与同步.异步 I/