麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > 管理維護 > 正文

web中緩存的使用方法_負載集群教程

2024-09-10 14:21:03
字體:
來源:轉載
供稿:網友

很多人都知道什么叫緩存,甚至學習過,但用起來還真難用。我經過幾天的學習cache想跟大家分享和討論。

我是帶著疑問去學習的。緩存是用在什么地方,有什么好處。

緩存就是把獲取的數據暫時存到內存中,當獲取的數據沒有變化時就還是用內存里的東西。評論中有人說緩存可用文件,數據庫存。這個我同意,但一般編程都用微軟中system.web.caching.cache 類,它是在把數據放在內存中??赡苡腥藭栐趺磁袛喃@取的數據沒有變化?這個等下會說到。這樣從緩存數據可是獲取數據速度快很多,但要求數據不時時常變化的。像博客園里的博客排行榜,基本沒變化,這是雖是數據不怎么變化,但這樣頁面每個人瀏覽都是一樣的東西,那又何必用緩存干什么呢?直接把此頁面生成html,這樣打開的速度比用緩存還快。

當一個頁面既有公共部分(每個人瀏覽的都一樣)又有個性部分(自己的信息)。比如當當網里就有個購物車當你購完物時,底單上面有推薦買的產品(這也產品可能一天換一次),當然推薦的產品跟你買的產品有關,此時不能生成html了,因為不是每個人瀏覽此頁面都相同,只有當用戶買的產品相關到推薦的產品相同時。此時就要用緩存存此推薦產品的數據,當然這個緩存鍵值是跟買的產品有關,只要買的產品相關得到的推薦產品(這里面有一種關系在里面)才能該緩存的東西。

打個比方:當你買書時就會推薦其他好書給你,此時買書的推薦書都一樣,調用的緩存都一樣,而買電腦的話可能會推薦你各種好電腦給你,這時調用推薦電腦的緩存。

上面可能講了下緩存用在什么地方,當然我只知道這種情況,可能還有其他情況,那位知道可評論下。

緩存的好處當然是減輕服務器的負擔,加快瀏覽速度。但如果緩存用得不好,可能得到的數據是過時的,或者反而使瀏覽熟讀更慢。(當你緩存經常變化的數據時)

 

緩存有分客戶端緩存服務器端緩存嗎?

兩個都有,只是客戶端緩存內嵌在瀏覽器中,基本上是瀏覽器自動處理緩存。

.

客戶端緩存可以有效地減輕服務器端負載。首先了解一下 HTTP 頭:Last-Modified 與 If-Modified-Since。簡單的說,Last-Modified 與If-Modified-Since 都是用于記錄頁面最后修改時間的 HTTP 頭信息,只是 Last-Modified 是由服務器往客戶端發送的 HTTP 頭,而 If-Modified-Since 則是由客戶端往服務器發送的頭實現。

在瀏覽器可設置瀏覽器如何使用緩存的。一般默認是自動。操作步驟如下:

工具-》internet選項-》常規-》設置-》檢查網頁的較新版本中有四個選項來控制緩存的運用

當然代碼可控制客戶端緩存,比如比想要瀏覽器緩存東西可用下面代碼

html禁用客戶端緩存

<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1978 08:21:57 GMT">

C#中禁止cache的方法!
Response.Buffer = true;
Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";

我對客戶端緩存知道太少,而且我們寫程序也很少寫客戶端緩存, 希望有人提供更多關于客戶端緩存的東西。

服務端緩存有System.Web.Caching.cahe和memcached

當然System.Web.Caching.cahe是微軟寫的類,而memcached是第三方插件。System.Web.Caching.cache目前還不是分布式緩存,只能在一臺電腦上(07時候),而

memcached是分布式的高速緩存。

服務器緩存可分為三種緩存

1.輸出緩存:

要實現頁面輸出緩存,只要將一條 OutputCache 指令添加到頁面即可?! ?
 ?。?@ OutputCache Duration="60" VaryByParam="*" %>  
  如同其他頁面指令一樣,該指令應該出現在 ASPX 頁面的頂部,即在任何輸出之前。它支持五個屬性(或參數),其中兩個是必需的?!?
  Duration
  必需屬性。頁面應該被緩存的時間,以秒為單位。必須是正整數。 
  Location
  指定應該對輸出進行緩存的位置。如果要指定該參數,則必須是下列選項之一:Any、Client、Downstream、None、Server 或 ServerAndClient?!?
  VaryByParam
   必需屬性。Request 中變量的名稱,這些變量名應該產生單獨的緩存條目。"none" 表示沒有變動。"*" 可用于為每個不同的變量數組創建新的緩存條目。變量之間用 ";" 進行分隔?! ?
  VaryByHeader
   基于指定的標頭中的變動改變緩存條目。  
  VaryByCustom
   允許在 global.asax 中指定自定義變動(例如,"Browser")。

2.片段緩存:

示例

<%@ OutputCache Duration="60" VaryByParam="*" %> 該示例將緩存用戶控件60秒,并且將針對查詢字符串的每個變動、針對此控件所在的每個頁面創建單獨的緩存條目。<%@ OutputCache Duration="60" VaryByParam="none"
VaryByControl="CategoryDropDownList" %> 該示例將緩存用戶控件60秒,并且將針對CategoryDropDownList控件的每個不同的值、針對此控件所在的每個頁面創建單獨的緩存條目。<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"
Shared="true" %>

最后,該示例將緩存用戶控件60秒,并且將針對每個瀏覽器名稱和主要版本創建一個緩存條目。然后,每個瀏覽器的緩存條目將由引用此用戶控件的所有頁面共享(只要所有頁面都用相同的ID引用該控件即可)。

 

3.編程用得最多的緩存:數據緩存

System.Web.Caching.cahe被httpRuntime.Cache或HttpContext.Current.Cache實例化。httpRuntime.Cache,HttpContext.Current.Cache是內置對象就想當與seesion。

 

HttpContext.Current.Cache與HttpRuntime.Cache區別:

HttpContext.Current.Cache:為當前 HTTP 請求獲取Cache對象。 HttpRuntime.Cache:獲取當前應用程序的Cache。HttpContext.Current.Cache是調用了 HttpRuntime.Cache,且HttpContext.Current.Cache是用在web程序上,而HttpRuntime.Cache是用在任何程序上。System.web命名空間下。

其實HttpContext.Current.Cache是通過 HttpRuntime.Cache來實現的,所以一般實例化最好通過HttpRuntime.Cache來實例化:

例如:System.Web.Caching.Cache cache = HttpRuntime.Cache

 

System.Web.Caching.Cache有很多方法,但方法中add中是存緩存

參數中有緩存時間,依賴項。

緩存時間即到當緩存的東西達到指定時間就讓緩存失效,而依賴項是當依賴項發生變化就會使緩存失效。

依賴項有一般依賴項 CacheDependency和數據庫依賴項SqlCacheDependency。

雖然CacheDependency類完成了很重要的功能,但其組成結構卻比較簡單,主要有兩個屬性和一個方法。
— 屬性“HasChanged”:判斷CacheDependency對象是否已更改。
— 屬性“UtcLastModified”:返回上次依賴項的修改日期
— 方法“Dispose”:釋放CacheDependency對象所占有的資源。因為緩存類繼承了接口“IDispose”,所以必須實現此方法。

CacheDependency

例如 Cache.Insert("key", myXMLFileData, DateTime.Now.AddMinutes(1),,new
System.Web.Caching.CacheDependency(Server.MapPath("users.xml")));

 users.xml文件就相當一般依賴項,當xml文件被改了,則此緩存失效。

SqlCacheDependency一般是增對數據庫的,這個設置需要在config里設置,而且還要啟動數據庫的這樣服務。

Cache.Insert 中可設置跟數據庫中那個表關聯,一旦表有變化就會導致cache失效。

可到網上查詢如何使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久成人精品视频 | h视频在线免费观看 | av成人一区二区 | 艹男人的日日夜夜 | 毛片在线免费视频 | 亚洲一区二区三区日本久久九 | 久久看视频 | 草莓视频久久 | 日本看片一区二区三区高清 | 2级毛片 | 久久精品79国产精品 | 少妇的肉体的满足毛片 | 视频一区二区久久 | 国产精品一区在线看 | 久久免费观看一级毛片 | 欧美高清一级片 | 美女黄污视频 | 亚洲成人在线免费 | 成人三级视频网站 | 日韩黄色片免费看 | 国产成人在线免费视频 | 国产一级毛片高清视频完整版 | 免费一级毛片在线播放视频 | 精品国内视频 | 国产一区影院 | 精品久久久久久综合日本 | 免费国产在线精品 | 美女毛片儿 | 欧美特级一级毛片 | 国产成人av免费看 | 国产精品剧情一区二区三区 | 最近免费观看高清韩国日本大全 | 久久影院午夜 | 成人在线视频免费观看 | 日本一区二区视频在线观看 | 国产日韩线路一线路二 | 亚洲爱爱网站 | 久久久线视频 | 毛片在哪里看 | 中文字幕一二三区芒果 | 亚洲欧美国产精品va在线观看 |