ASP.Net中的缓存方案(不仅仅是Cache和Session)(我在CSDN上和别人的争论)

简介:
我想设计一个完善的缓冲方案,用于在程序的各个地方缓冲数据。

应用程序级的Cache和Application大家都懂,就不说了
用户会话级的Session也懂,也不说

我要说的是小一点作用范围的。

线程级:在且仅在某个线程内有效的缓存。比如,可以定义一个数据库连接对象,在线程级把它缓冲起来,那么,执行各种数据库操作的时候,就不用担心它会冲突,因为当前CPU只有一个线程在执行。我们对数据库连接的一般做法都是在每个对象内部声明一个数据库连接或者作为属性由对象外部传进去,我觉得这种做法都不方便,如果能够实现线程级,则可以在数据层各个数据对象内部直接使用这个被缓存了的数据库连接,没有冲突,也在最大限度上充分利用了数据库连接。

请求级:在且仅在某一次请求的范围内有效的缓存。有时候,对于数据库的连接,我们都希望,在程序使用时连接一次数据库,一直用到这次请求结束。这就是请求级啦。

我觉得,线程级比请求级更好,因为ASP.Net运行时是这样处理的,收到一个请求,就从线程池分派一个线程去处理这个请求,同时也是从HttpApplication实例池中拿一个HttpApplication实例去处理,所以,一个线程可以被用于多次请求,一个HttpApplication实例,也可能被用于多个请求。

经过半个月来查找资料,我已经解决了绝大部分难题,做起来也挺麻烦的。
现在想听听大家的意见,看看大家有没有更好的实现方法。

CSDN上的地址
http://community.csdn.net/Expert/TopicView3.asp?id=5147435
我不相信神话,我只相信汗水!我不相信命运,我只相信双手!

本文转自大石头博客园博客,原文链接:http://www.cnblogs.com/nnhy/archive/2006/11/28/575221.html,如需转载请自行联系原作者
目录
相关文章
|
存储 开发框架 NoSQL
ASP.NET WEB——项目中Cookie与Session的用法
ASP.NET WEB——项目中Cookie与Session的用法
255 0
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
260 0
|
安全 C# 开发工具
模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
模拟.NET实际应用场景,综合应用三个主要知识点:一是使用dnSpy反编译第三库及调试,二是使用Lib.Harmony库实现第三库拦截、伪造,三是实现同一个库支持多版本同时引用。
模拟.NET应用场景,综合应用反编译、第三方库调试、拦截、一库多版本兼容方案
|
数据采集 自然语言处理 JavaScript
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
随着数据采集需求的增加,传统爬虫工具如Selenium、Jsoup等因语言割裂、JS渲染困难及代理兼容性差等问题,难以满足现代网站抓取需求。微软推出的Playwright框架,凭借多语言支持(Python/Java/.NET/Node.js)、统一API接口和优异的JS兼容性,解决了跨语言协作、动态页面解析和身份伪装等痛点。其性能优于Selenium与Puppeteer,在学术数据库(如Scopus)抓取中表现出色。行业应用广泛,涵盖高校科研、大型数据公司及AI初创团队,助力构建高效稳定的爬虫系统。
904 2
Playwright多语言生态:跨Python/Java/.NET的统一采集方案
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
274 0
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
405 0
|
缓存 开发框架 .NET
ASP.NET Core 缓存
Get新知识: 缓存相关概念:缓存的类型:总结:总的来说,私有缓存会减少网络带宽的需求,同时会减少从缓存到API的请求。因为私有缓存是存储在客户端浏览器的,对于请求来说,如果缓存还在有限期内,那么请求连网络请求都不会发出会直接在客户端浏览器获取到响应,这样就减少网络请求次数,同样也会减少API请求次数。而共享缓存不会节省缓存到API的网路带宽,但是它会减少请求到API的请求。因为共享缓存是...
181 0
ASP.NET Core 缓存
|
缓存 NoSQL Java
【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常
【Azure Redis 缓存 Azure Cache For Redis】Redis出现 java.net.SocketTimeoutException: Read timed out 异常
358 5
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常
760 1
|
缓存 程序员
封装一个给 .NET Framework 用的内存缓存帮助类
封装一个给 .NET Framework 用的内存缓存帮助类
297 1