成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET技術簡介之緩存技術

開發 后端
ASP.NET技術簡介之緩存技術,由數據庫驅動的Web應用程序,如果需要改善其性能,最好的方法是使用緩存功能。希望本文對大家有所幫助

用戶從數據庫中檢索數據,可能是Web應用程序中執行最慢的操作之一。因為其中涉及多個環節,例如,Web服務器、數據庫服務器等。尤其是在用戶比較多,檢索的數據量比較大的情況下,會給包括用戶在內的各個方面造成不小的困難。如果能夠將數據庫中的數據緩存到內存(也可以存儲在其他場所),則無需在請求每個頁面時都訪問數據庫。由于從內存中返回數據的速度始終比新提供的數據速度快,因而可以大大提供應用程序的性能。

緩存有一個不太容易克服的缺點,那就是數據過期的問題。最典型的情況是,如果將數據庫表中的數據內容緩存到服務器內存中,當數據庫表中的記錄發生更改時,Web應用程序則很可能顯示過期的、不準確的數據。對于某些類型的數據,即使顯示的信息過期,影響也不會很大。然而,對于實時性要求比較嚴格的數據,例如,股票價格、拍賣出價之類信息,顯示的數據稍有過期都是不可接受的。

為了解決以上問題,ASP.NET 1.x中曾經提供了一些比較好的緩存功能,例如,頁面輸出緩存、部分緩存、頁面數據緩存等。雖然這些緩存功能可以解決數據緩存方面的問題,但還是存在較大的缺點,開發人員必須在性能和數據過期之間作出權衡,數據過期的問題始終困擾著開發人員。例如,如果數據庫表中的數據發生了變化,緩存則也許不能在指定的時間內更新,而必須等到緩存過期,那么就有可能為用戶帶來一定的麻煩。理想的情況是,數據庫表中的任何更新,都能夠立刻體現在緩存數據中,ASP.NET 2.0克服了以上不足,解決了這個問題。ASP.NET 2.0的緩存功能是在ASP.NET 1.x基礎之上擴展而來的。

ASP.NET技術簡介:ASP.NET 2.0支持以下幾種緩存

◆頁面輸出緩存

頁面輸出緩存是最為簡單的緩存機制,該機制將整個ASP.NET頁面內容保存在服務器內存中。當用戶請求該頁面時,系統從內存中輸出相關數據,直到緩存數據過期。在這個過程中,緩存內容直接發送給用戶,而不必再次經過頁面處理生命周期。通常情況下,頁面輸出緩存對于那些包含不需要經常修改內容的,但需要大量處理才能編譯完成的頁面特別有用。需要讀者注意的是,頁面輸出緩存是將頁面全部內容都保存在內存中,并用于完成客戶端請求。

◆頁面部分緩存

顧名思義,頁面部分緩存是將頁面部分內容保存在內存中以便響應用戶請求,而頁面其他部分內容則為動態內容。頁面部分緩存的實現包括兩種方式:控件緩存和替換后緩存。前者也可稱為片段緩存,這種方式允許將需要緩存的信息包含在一個用戶控件內,然后,將該用戶控件標記為可緩存的,以此來緩存頁面輸出的部分內容。這一方式緩存了頁面中的特定內容,而沒有緩存整個頁面,因此,每次都需重新創建整個頁。例如,如果要創建一個顯示大量動態內容(如股票信息)的頁,其中有些部分為靜態內容(如每周總結),這時可以將靜態部分放在用戶控件中,并允許緩存這些內容。緩存后替換與控件緩存正好相反。這種方式緩存整個頁,但頁中的各段都是動態的。例如,如果要創建一個在規定時間段內為靜態的頁,則可以將整個頁設置為進行緩存。如果向頁添加一個顯示用戶名的Label控件,則對于每次頁刷新和每個用戶而言,Label的內容都將保持不變,始終顯示緩存該頁之前請求該頁的用戶的姓名。使用緩存后替換機制,可以將頁配置為進行緩存,將頁的個別部分標記為不可緩存。在此情況下,可以向不可緩存部分添加Label控件,這樣將為每個用戶和每次頁請求動態創建這些控件。

◆應用程序數據緩存

應用程序數據緩存提供了一種編程方式,可通過鍵/值對將任意數據存儲在內存中。使用應用程序緩存與使用應用程序狀態類似。但是,與應用程序狀態不同的是,應用程序數據緩存中的數據是易失的,即數據并不是在整個應用程序生命周期中都存儲在內存中。應用程序數據緩存的優點是由ASP.NET管理緩存,它會在項過期、無效,或內存不足時移除緩存中的項,還可以配置應用程序緩存,以便在移除項時通知應用程序。

◆緩存依賴

ASP.NET 1.x已經提供了一些基于時間、文件、目錄等緩存依賴功能。這些功能雖然能夠處理一些常見問題,但是無法解決數據過期的難題。為此,ASP.NET 2.0新增了SQL數據緩存依賴功能。該功能的核心是SqlCacheDependency類。不同版本的SQL Server,其對于SQL數據緩存依賴具有不同程度的支持,因此,使用方法差異較大。另外,ASP.NET 2.0還支持以CacheDependency類為核心的自定義緩存依賴,以及以AggregateCacheDependency類為核心的聚合緩存依賴等。

ASP.NET 2.0包括了一些有助于進行緩存配置的新功能。例如,允許使用Web.config文件來創建緩存設置。在Web.config文件中進行適當設置,并在單個頁中引用這些設置后,就能夠將緩存設置同時應用于多個頁面。同時,緩存設置還添加了更多用于自定義緩存性能的選項。

以上簡單介紹了ASP.NET 2.0提供的緩存功能,它們能夠提高請求響應的吞吐量以便提高應用程序性能。實際上,這些緩存功能有的繼承自ASP.NET 1.x,并且得到了增強,有的則是新增功能。增強功能包括功能更強大的頁面部分緩存模型、增強的緩存配置以及輸出緩存指令的改進。新功能包括Web.config緩存配置支持、自定義緩存依賴、聚合緩存依賴、SQL數據緩存依賴以及緩存后替換等。

在正式開始介紹以上各個緩存功能之前,還有兩個概念需要了解。一個是緩存清除,另一個是緩存過期。

緩存清除是指從內存中移除緩存數據。可能由以下3個原因造成:一是緩存項數據過期。每個過期的緩存項數據都必須被刪除,否則導致服務器內存不足,影響其他應用程序執行。二是緩存依賴項發生改變。依賴項與數據緩存項有著密切關系。根據應用程序設置,如果依賴項發生改變,那么數據緩存很可能會被清除。三是由于服務器內存不足,開始緩存清理過程。如果某些項在一段時間內未被訪問,或是在添加到緩存中時被標記為低優先級,則這些項會被移除。

以上介紹了緩存清除的概念和形成原因,其中涉及一個數據過期的問題。在ASP.NET 2.0中,當向緩存添加項時,可以設置兩種數據過期類型。一種稱為可調過期,即指定某項自上次被訪問后多長時間過期。例如,可以將某項設置為自上次在緩存中被訪問后20分鐘過期。另一種是絕對過期,即指定某項在設定的時間過期,而不考慮訪問頻率。例如,可以將某項設置為在下午6點過期,或4小時后過期。

ASP.NET技術簡介:ASP.NET 2.0的緩存功能具有以下優點:

◆支持更為廣泛和靈活的可開發特征

ASP.NET 2.0包含一些新增的緩存控件和API。例如,自定義緩存依賴、Substitution控件、頁面輸出緩存API等,這些特征能夠明顯改善開發人員對于緩存功能的控制。

◆增強的可管理性

使用ASP.NET 2.0提供的配置和管理功能,可以更加輕松地管理緩存功能。

◆提供更高的性能和可伸縮性

ASP.NET 2.0提供了一些新的功能,例如,SQL數據緩存依賴等,這些功能將幫助開發人員創建高性能、伸縮性強的Web應用程序。

另外,緩存功能也有其自身的不足。例如,顯示的內容可能不是最新、最準確的,為此,必須設置合適的緩存策略。又如,緩存增加了系統的復雜性并使其難于測試和調試,因此建議在沒有緩存的情況下開發和測試應用程序,然后在性能優化階段啟用緩存選項。

ASP.NET技術簡介之緩存技術到此結束。

【編輯推薦】

  1. 淺析ASP.NET Web 安全性
  2. ASP.NET的Session State
  3. 淺析IsPostBack屬性ASP.NET
  4. ASP.NET構架與安全機制
  5. 概述ASP.NET水晶報表
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-08-03 13:30:47

ASP.NET開發

2009-05-11 13:48:00

ASP.NET 2.0緩存效率

2009-07-28 16:42:02

ViewState技術ASP.NET應用

2009-08-03 18:47:12

ASP.NET數據緩存

2015-06-11 14:57:23

ASP.NET 5

2009-07-21 17:09:47

ASP.NET多線程

2009-08-05 15:01:04

ASP.NET應用Vi

2011-10-19 09:41:15

ASP.NET性能優化

2009-07-31 10:23:44

緩存頁面ASP.NET緩存

2009-07-28 17:17:19

ASP.NET概述

2010-06-23 15:44:03

ASP.NET MVC

2009-07-21 13:30:59

JSP技術ASP.NET

2009-07-24 13:08:40

AJAX技術ASP.NET

2009-04-01 17:24:26

微軟ASP.NETMVC1.0

2011-10-17 09:54:18

ASP.NET性能

2009-07-31 10:33:54

ASP.NET頁面輸出

2009-08-04 15:22:33

ASP.NET緩存機制

2009-07-29 14:35:34

頁面輸出緩存ASP.NET

2009-07-29 10:35:51

ASP.NET緩存

2009-08-06 14:16:04

ASP.NET服務器控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色网址在线免费播放 | 精品一二三区在线观看 | 91免费电影 | 国产精久久久久久久 | 亚洲成人精品影院 | 四虎在线观看 | av手机免费在线观看 | 午夜视频在线观看网站 | 夜夜爽99久久国产综合精品女不卡 | 精品视频一区二区 | 欧美成年黄网站色视频 | 二区中文字幕 | 日韩资源| 欧美日韩福利视频 | 精品一区二区视频 | 久久成人av电影 | 夜夜夜夜夜夜曰天天天 | 亚洲成人一区二区 | 成人精品一区 | 国产精品久久久久久久模特 | 午夜影院网站 | 嫩草懂你的影院入口 | 在线激情视频 | 国产精品免费在线 | 男人天堂网站 | 国产网站在线 | 在线亚洲人成电影网站色www | 欧美精品一区在线发布 | 狠狠操狠狠搞 | 一区二区三区视频在线 | 欧美网址在线观看 | 色欧美片视频在线观看 | 午夜tv免费观看 | 成人在线中文字幕 | 亚洲日日夜夜 | 一区二区三区四区五区在线视频 | 91一区二区三区在线观看 | 一级a性色生活片久久毛片波多野 | 久久91| 日韩欧美久久精品 | 国产综合精品 |