如何理解Squid refresh pattern

2021-08-31 06:32:24 字數 1661 閱讀 3992

refresh_pattern的作用:

用於確定乙個頁面進入cache後,它在cache中停留的時間。

語法:refresh_pattern [-i] regexp min percent max [options]

幾個概念:

resource age   =  (物件進入cache的時間) - (物件的last_modified)

response age = (當前時間) - (物件進入cache的時間)

lm-factor=(response age)/(resource age)

舉個例子,這裡只考慮percent, 不考慮min  和 max

例如:refresh_pattern   20%

假設源伺服器上www.aaa.com/index.htm  -----lastmodified 是          2007-04-10 02:00:00

squid上       proxy.aaa.com/index.htm  index.htm進入cache的時間  2007-04-10 03:00:00

1)如果當前時間   2007-04-10 03:00:00

resource age =3點-2點=60分鐘

response age =0分鐘

index.htm還可以在cache停留的時間(resource age)*20%=12分鐘

也就是說,index.htm進入cache後,可以停留12分鐘,才被重新確認。

2)如果當前時間  2007-04-10 03:05:00

resource age =3點-2點=60分鐘

response age =5分鐘

index.htm還可以在cache停留的時間(resource age)*20%=12分鐘-5=7

lm-factor=5/60=8.3%<20%

一直到2007-04-10 03:12:00   lm-factor=12/60=20% 之後,cache中的頁面index.htm終於stale。

如果這時沒有index.htm的請求,index.htm會一直在快取中,如果有index.htm請求,squid收到該請求後,由於已經過期,squid會向源伺服器發乙個index.htm是否有改變的請求,源伺服器收到後,如果index.htm沒有更新,squid就不用更新快取,直接把快取的內容放回給客戶端,同時,重置物件進入cache的時間為與源伺服器確認的時間,比如2007-04-10 03:13:00,如果正好在這個後重新確認了頁面。重置後,resource age變長,相應在cache中存活的時間也變長。

如果有改變則把最新的index.htm返回給squid,squid收到會更新快取,然後把新的index.htm返回給客戶端,同時根據新頁面中的last_modified和取頁面的時間,重新計算resource age,進一步計算出存活時間。

實際上,乙個頁面進入cache後,他的存活時間就確定了,即 (resource age) * 百分比,一直到被重新確認。

理解了百分比後,min max就好理解了

squid收到乙個頁面請求時:

1、計算出response age,

2、如果response agemax 則 stale

3、如果response age在之間,如果response時間《存活時間,fresh,否則stale

如何理解Socket

socket協議的形象描述 socket的英文原義是 孔 或 插座 在這裡作為4bds unix的程序通訊機制,取後一種意義。socket非常類似於 插座。以乙個國家級 網為例。的通話雙方相當於相互通訊的2個程序,區號是它的網路位址 區內乙個單位的交換機相當於一台主機,主機分配給每個使用者的局內號碼...

如何理解LPCTSTR

l表示long指標,這是為了相容windows 3.1等16位作業系統遺留下來的,在win32中以及其他的32為作業系統中,long指標和near指標及far修飾符都是為了相容的作用。沒有實際意義。p表示這是乙個指標 c表示是乙個常量 t在win32環境中,有乙個 t巨集,這個巨集用來表示你的字元是...

如何理解C

如何理解c 面對這個問題,一千個人有一千個哈姆雷特。我也不知道如何理解c 畢竟我c 程式設計經驗實在是少。在閱讀effective c 這本書時,條款01 視c 為乙個語言聯邦裡面貌似給出了解釋,但是不知道能不能作為這個問題的答案。說起c 大多數人都會和c聯絡起來。誠然,c 是c的超集,c是c 的子...