(理論篇)petshop中快取運用之我見

2022-03-12 10:41:47 字數 2355 閱讀 4569

petshop中關於快取的應用很廣泛,這裡主要是剖析一下實現:

1 先從cs頁面開始看起,見**:

namespace

petshop.web

}}webutility.getcategoryname此方法根據商品id取得商品名稱,此名稱是有快取的

2 來看webutility這個通用類裡的實現

public

static

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();的實現

namespace

petshop.cachedependencyfactory

public

static

ipetshopcachedependency createproductdependency()

public

static

ipetshopcachedependency createitemdependency()

private

static ipetshopcachedependency loadinstance(string

classname)

}

這裡應用到了反射和配置檔案相結合的方式,讀取應用程式集的配置

,通過反射得到具體類的例項

5 具體反射的快取例項如下:

namespace

petshop.tablecachedependency

}}

呼叫的是父類tabledependency的構造方法來例項化

6 這裡才是具體的快取依賴值,目的就是為具體資料庫的具體哪幾張表設定快取依賴,

即這幾張表的資料發生變化時,快取的相應資料也會自動更新過來,優勢在此

namespace

petshop.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稱...