petshop中關於快取的應用很廣泛,這裡主要是剖析一下實現:
1 先從cs頁面開始看起,見**:
namespacepetshop.web
}}webutility.getcategoryname此方法根據商品id取得商品名稱,此名稱是有快取的
2 來看webutility這個通用類裡的實現
publicstatic
string getcategoryname(string
categoryid)
return
data;
}這裡的實現很簡單,判斷快取是否存在,存在直接返回資料,不存在,則將資料快取起來,並設定了快取依賴
(快取依賴的作用在於資料表更新時,快取的資料也會自動更新)
3 來看快取依賴的實現,主要是這一句**
aggregatecachedependency cd =dependencyfacade.getcategorydependency();意思是取得快取依賴,如下:
namespace
petshop.cachedependencyfactory
public
static
aggregatecachedependency getproductdependency()
public
static
aggregatecachedependency getitemdependency()
}}讀取
"cachedependencyassembly
" value="
petshop.tablecachedependency
"/>中的配置,若有配置,則通過
dependencyaccess.createitemdependency().getdependency();來獲取
4 來看dependencyaccess.createitemdependency().getdependency();的實現
namespacepetshop.cachedependencyfactory
public
static
ipetshopcachedependency createproductdependency()
public
static
ipetshopcachedependency createitemdependency()
private
static ipetshopcachedependency loadinstance(string
classname)
}
這裡應用到了反射和配置檔案相結合的方式,讀取應用程式集的配置
,通過反射得到具體類的例項
5 具體反射的快取例項如下:
namespacepetshop.tablecachedependency
}}
呼叫的是父類tabledependency的構造方法來例項化
6 這裡才是具體的快取依賴值,目的就是為具體資料庫的具體哪幾張表設定快取依賴,
即這幾張表的資料發生變化時,快取的相應資料也會自動更新過來,優勢在此
namespacepetshop.tablecachedependency ;
protected aggregatecachedependency dependency = new
aggregatecachedependency();
protected tabledependency(string
configkey)
public
aggregatecachedependency getdependency()
}
配置需要設定快取的資料庫,和需要快取的表
"cachedatabasename
" value="
mspetshop4
"/>
"categorytabledependency
" value="
category
"/>
"producttabledependency
" value="
product,category
"/>
"itemtabledependency
" value="
product,category,item
"/>
7 以上既是快取的實現,和快取依賴的具體實現,記下供以後在專案中使用!
Pet Shop 4 0的快取機制
周一在新員工培訓上為他們做了乙個petshop 4.0的talk,感謝zou老師給我這麼好的乙個機會,讓我自今還覺得相當incredible,不過也證明了msra裡面,imporsible is nothing 結果這兩天不停有人跑來問我各種各樣的pet shop問題,還好憑著自己的三腳貓功夫,能夠...
Pet Shop 4 0的快取機制
首先,pet shop中應用了asp.net 2.0中新增加的sqlcachedependency能力,通過配置檔案的設定,framwork會自動定時輪詢資料庫中的乙個監視表,而被監視表上有 乙個觸發器,在發生insert update delete操作的時候就會改變監視表中changeid的值。這...
線性回歸 理論篇
回歸 的由來 francisgalton,英國生物學家,他研究了父母身高與子女身高之間關係後得出,若父母身高高於平均大眾身高,則其子女身高傾向於倒退生長,即會比其父母身高矮一些而更接近於大眾平均身高。若父母身高小於平均身高,則其子女身高傾向於向上生長,以更接近於大眾平均身高。此現象,被galton稱...