拆解discuz NT之一 快取模組

2022-02-10 00:43:49 字數 567 閱讀 2443

最近一直在改discuz!nt,感覺discuz!nt做出了就是讓別人來改的,呵呵,因為它雖然很完善,但是實際使用的時候總有不如意的地方,要想改它,就要很好的了解它,不然牽一髮而動全身啊,我改的版本是2.5的,已經有2.6的版本了,不過是沒辦法公升級使用了,因為改的太多了

一直好奇的是discuz!nt的快取模組,這次就來學學他,discuz!nt裡大量使用快取,所以效能那麼的好。

首先是這個快取模組中組織快取物件的方法,看來是為了使快取的物件具有一定層次結構,它裡面利用xml來儲存這個結構,通過xpath就可以獲得某個快取物件的節點,這個節點就快取物件的鍵值,利用這個鍵值再去快取中獲取或刪除物件。

利用xml來組織的確實比較好,當你需要批量更新快取的時候,比如在discuz!nt後台就有更新快取的功能,你可以通過xpath獲得乙個節點集,這樣就可以輕鬆更新你想要更新的快取物件了。

其次,這裡還用到了策略這模式,discuz!nt裡用了更多的設計模式,包括工廠方法,模板方法,策略者等等,

利用策略者模式將實際組織物件的模組和儲存物件的模組分離開,這樣如果以後關於.net快取出新版本時,可以輕鬆的擴充套件,而不用改原來的寫好的**,很好很好。

Hibernate快取機制之一級快取

快取是介於應用程式和物理資料來源之間,其作用是為了降低應用程式對物理資料來源訪問的頻次,從而提高了應用的執行效能。快取內的資料是對物理資料來源中的資料的複製,應用程式在執行時從快取讀寫資料,在特定的時刻或事件會同步快取和物理資料來源的資料。hibernate的第一級快取也就是session的快取,它...

MVC3快取之一 使用頁面快取

在以前的webform的開發中,在頁面的頭部加上outputcache即可啟用頁面快取,而在mvc3中,使用了razor模板引擎的話,該如何使用頁面快取呢?在mvc3中要如果要啟用頁面快取,在頁面對應的action前面加上乙個outputcache屬性即可。我們建乙個demo來測試一下,在此demo...

hibernate框架 快取機制之一級快取

什麼是快取 我們在記憶體中開闢一塊空間,把本來應該儲存在硬碟上的東西,然後給它放在記憶體裡,將來要讀的時候從記憶體中讀,這個部分就叫做快取。在hibernate有三種快取,一級快取,二級快取和查詢快取。一級快取是session級別的快取。例子 test public void testhuancun...