我有任何在Asp.Net Webforms应用程序中缓存数据的经验。
我有一个包含四台服务器的Web场。
我有一个表格,其中包含MSSQL Server中的常量。
我不想用来自DB的每个http请求选择这些常量,但理想情况下将这些值保存到缓存中并从缓存中获取这些值。
如何在Web场中执行此操作? 这样做的最佳方式是什么?
答案 0 :(得分:1)
您可以使用HttpContext.Cache存储这些值,但是如果它们真的不变(即它们绝对不会改变),那么您可以使用static class
使用static readonly
属性并从数据库中填充一次这些属性。
在这两种情况下,它们都可以在整个应用程序中使用。在Web场中使用时,这种方法确实意味着每个服务器都会检索一次值,而不是整个服务器场一次,但除非值的数量达到10,000,我个人不会担心关于那个。
答案 1 :(得分:-1)
如果数据真的永远不会改变,你也可以使用HttpContext.Current.Application存储信息。
根据概述here:
Application
不是缓存,它是全局命名值集合。如果您将对象添加到Application
,它将保留到应用程序域回收。
Cache
:通过在Application
或Cache
类中缓存频繁请求的对象和数据,可以在ASP.NET应用程序中获得显着的性能改进。虽然Cache
类确实提供了更多的灵活性和控制,但它似乎在缓存Application
类的吞吐量增加方面提供了边际优势。开发一种测试方案是非常困难的,该方案可以准确地测量Cache
类通过清理过程对较少使用的对象的内置管理的潜在优势,而不是应用程序不提供此功能的事实。开发人员需要在这种情况下做出决定,并且应该基于项目的需求和便利性及其使用模式。