ASP.NET 为您提供了一个强大的、便于使用的缓存机制,用于将需要大量服务器资源来创建的对象存储在内存中。缓存这些类型的资源会大大改进应用程序的性能。
缓存是由 Cache 类实现的;缓存实例是每个应用程序专用的。缓存生存期依赖于应用程序的生存期;重新启动应用程序后,将重新创建 Cache 对象。
设计 Cache 类是为了便于使用。您可以将项放置在 Cache 中,并在以后使用简单的键/值对来检索这些项。
Cache 类提供了强大的功能,允许您自定义如何缓存项以及将它们缓存多长时间。例如,当缺乏系统内存时,缓存会自动移除很少使用的或优先级较低的项以释放内存。该技术也称为清理,这是缓存确保过期数据不使用宝贵的服务器资源的方式之一。
当执行清理时,您可以指示 Cache 给予某些项比其他项更高的优先级。若要指示项的重要性,可以在使用 Add 或 Insert 方法添加项时指定一个 CacheItemPriority 枚举值。
当使用 Add 或 Insert 方法将项添加到缓存时,您还可以建立项的过期策略。您可以通过使用 DateTime 值指定项的确切过期时间(绝对过期时间),来定义项的生存期。也可以使用 TimeSpan 值指定一个弹性过期时间,弹性过期时间允许您根据项的上次访问时间来指定该项过期之前的运行时间。一旦项过期,便将它从缓存中移除。试图检索它的值的行为将返回 null(在 Visual Basic 中为 Nothing),除非该项被重新添加到缓存中。
对于存储在缓存中的易失项(例如那些定期进行数据刷新的项或那些只在一段时间内有效的项),通常设置一种过期策略:只要这些项的数据保持为最新的,就将它们保留在缓存中。例如,如果您正在编写一个应用程序,该应用程序通过另一个网站获取数据来跟踪体育比赛的比分,那么只要源网站上比赛的比分不更改,就可以缓存这些比分。在此情况下,您可以根据其他网站更新比分的频率来设置过期策略。您可以编写代码来确定缓存中是否是最新的比分。如果该比分不是最新的,则代码可以从源网站读取比分并缓存新值。
最后,ASP.NET 允许您根据外部文件、目录(文件依赖项)或另一个缓存项(键依赖项)来定义缓存项的有效性。如果具有关联依赖项的项发生更改,缓存项便会失效并从缓存中移除。您可以使用该技术在项的数据源更改时从缓存中移除这些项。例如,如果您编写一个处理 XML 文件中的财务数据的应用程序,则可以从该文件将数据插入缓存中并在此 XML 文件上保留一个依赖项。当该文件更新时,从缓存中移除该项,您的应用程序重新读取 XML 文件,然后将刷新后的数据放入缓存中。
将项添加到缓存中
可以使用 Cache 对象访问应用程序缓存中的项。可以使用 Cache 对象的 Insert 方法向应用程序缓存添加项。该方法向缓存添加项,并且通过几次重载,您可以用不同选项添加项,以设置依赖项、过期和移除通知。如果使用 Insert 方法向缓存添加项,并且已经存在与现有项同名的项,则缓存中的现有项将被替换。
还可以使用 Add 方法向缓存添加项。使用此方法,您可以设置与 Insert 方法相同的所有选项;然而,Add 方法将返回您添加到缓存中的对象。另外,如果使用 Add 方法,并且缓存中已经存在与现有项同名的项,则该方法不会替换该项,并且不会引发异常。
通过键和值直接设置项向缓存添加项
通过指定项的键和值,像将项添加到字典中一样将其添加到缓存中。
下面的代码示例将名为 CacheItem1 的项添加到 Cache 对象中:
Cache["CacheItem1"] = "Cached Item 1";
通过使用 Insert 方法将项添加到缓存中
调用 Insert 方法,传递要添加的项的键和值。
下面的代码示例添加名为 CacheItem2 的字符串:
Cache.Insert("CacheItem2", "Cached Item 2");
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索缓存
, 方法
, 应用程序
, cache
, 时间
, 绝对过期时间
, 数据库添加时间
, 过期
, 状态缓存
thinkphp_s方法缓存
,以便于您获取更多的相关知识。