cache 即快取記憶體.那麼cache是怎麼樣提高系統效能與執行速度呢?是不是在任何情況下用cache都能提高效能?是不是cache用的越多就越好呢?我在近 期開發的專案中有所體會,寫下來當作總結也希望能跟大家一起****,有錯誤的地方希望大家批評指正。
1.cache 是怎麼樣工作的?
cache 是分配在伺服器上的乙個公共的記憶體片。
所謂公共指的cache只要一建立是任何乙個客戶端瀏覽器都可以通過後台**訪問到它,它面向的是所有使用者,相對而言session也是伺服器上的一 段記憶體,但他面向的是單個使用者。它是伺服器的一段記憶體塊,也就是說每個cache一經建立就占用了伺服器資源的。所以從這點來說我們就可以說:並不是 cache越多越好。
cache 是有時間限制的,超過了伺服器設定的過期時間,它就會被伺服器**。
cache 可以存放任何物件
2.cache 怎麼樣建立以及怎麼樣銷毀
建立cache
在dotnet環境下通過
cache.insert(string key,object o)
方法建立。
其中key 代表cache的id,o代表存到cache裡的物件。
銷毀cache
通過方法
cache.remove(string key)
其中key 代表cache的 id.
呼叫cache
cache支援裝箱/拆箱操作。如你可以把乙個dataset物件ds通過
cache.insert(「dscache」,ds)
的方式存到cache中,可以通過拆箱操作
dataset ds = (dataset)cache[「dscache」]
來訪問它。
3.什麼時候用cache
cache 一般用於資料較固定,用的較頻繁的地方。
例如可以把進銷存系統中可以把產品資訊存入cache,在使用者呼叫產品資訊時通過呼叫cache即可,這樣從很大 程度上減少了使用者與資料庫的互動,提高了系統的效能。反之,
cache不適合用在資料變動快,使用範圍很窄的地方
。例如把乙個具體採購單存入 cache中。
4.cache 呼叫注意事項
cache是有時間限制的。超過了伺服器設定的過期時間,就會被伺服器**。當cache被**後對應的記憶體塊就會被清空,再次通過cache[「cachekey」]訪問物件時返回的就是null值。所以以下這種呼叫就會出現異常
dataset ds = (dataset)cache[「cacheds」];
datarow dr = ds.table[0].row[0]; //出錯,ds為null值,不存在表0。
正確的寫法應該是:
dataset ds;
if(cache[「cacheds」] != null)
else
datarow dr = ds.table[0].row[0];
C Cache何時使用及使用方法
cache 即快取記憶體.那麼cache是怎麼樣提高系統效能與執行速度呢?是不是在任何情況下用cache都能提高效能?是不是cache用的越多就越好呢?我在近 期開發的專案中有所體會,寫下來當作總結也希望能跟大家一起 有錯誤的地方希望大家批評指正。1.cache 是怎麼樣工作的?cache 是分配在...
C Cache何時使用及使用方法
cache 即快取記憶體.那麼cache是怎麼樣提高系統效能與執行速度呢?是不是在任何情況下用cache都能提高效能?是不是cache用的越多就越好呢?我在近 期開發的專案中有所體會,寫下來當作總結也希望能跟大家一起 有錯誤的地方希望大家批評指正。1.cache 是怎麼樣工作的?cache 是分配在...
C Cache何時使用及使用方法
cache 即快取記憶體.那麼cache是怎麼樣提高系統效能與執行速度呢?是不是在任何情況下用cache都能提高效能?是不是cache用的越多就越好呢?我在近 期開發的專案中有所體會,寫下來當作總結也希望能跟大家一起 有錯誤的地方希望大家批評指正。1.cache 是怎麼樣工作的?cache 是分配在...