緩存是一種計算機哲學,幾乎所有的地方都使用了緩存的理論.
phpcms中使用三種緩存的策略,一個是基于file的,一種是apc,一種是基于memcache,memcache在今天已經不是很好的解決方案,很容易造成內存的碎片,加重服務器的負擔,據說新版本大改了下,但是現在redis冒失性能更優越些.
phpcms的緩存配置文件:
- return array (
- 'file1' => array (
- 'type' => 'file',
- 'debug' => true,
- 'pconnect' => 0,
- 'autoconnect' => 0
- ),
- 'template' => array (
- 'hostname' => '210.78.140.2',
- 'port' => 11211,
- 'timeout' => 0,
- 'type' => 'memcache',
- 'debug' => true,
- 'pconnect' => 0,
- 'autoconnect' => 0
- //Vevb.com
- )
- );
cache_factory.php使用這個配置文件,說實話phpcms的代碼質量我一直不敢恭維,單例模式的構造方法竟然是public,類的成員變量竟然動態聲明,類的實例化是new classname,注意沒有()...我就不一一吐槽了,不過類的設計倒是挺好的,單一職責.
phpcms默認的緩存模式是文件緩存 cache_file.php,后綴名是.cache.php,緩存格式是數組,對象使用了序列化,看到這也差不多知道了它的緩存的設計了,該類有寫入緩存,讀取緩存,刪除緩存等方法,對我們學習緩存的設計還是有很多幫助的.
奇怪的是它把緩存的信息寫入了數據庫中,生成緩存和刪除緩存和數據庫進行了交換,使用緩存沒有使用,唯一的解釋就是后臺管理平臺使用這些數據,網站端不使用這些東西.
phpcms另一個緩存模式是memcache,這個種key-value的內存緩存,使用起來非常的簡單就沒有說的必要了.
還一個apc是打醬油,phpcms沒有使用,只要是編譯時期的一些緩存機制,對大型網站來說,效果有限,大型網站拼的是架構.
新聞熱點
疑難解答