我想實現一個雙通道緩存系統兩遍PHP緩存系統:創建具有可變項
第一遍生成一個PHP文件,所有的共同的東西(如新聞條目),硬編碼。數據庫然後有一個緩存表來鏈接這些頁面(例如「index.php page = 1 style = default」),數據庫也存儲一個uptodate字段,如果爲false則導致第一遍在下次頁面時重新運行被觀看。
第二次通過填充次要的細節,比如多久之前有東西(?),以及諸如「您已登錄爲...」等可變項目。
但是我不知道在一個有效的實施,同時支持緩存和非緩存(例如,搜索)的網頁,而無需大量的代碼和幾個查詢。
現在每次頁面加載時,都會運行PHP腳本來重新生成頁面。對於像搜索這樣的頁面來說,這很好,因爲大多數搜索都是不同的,但對於其他頁面(例如索引),這對每個匹配實際上都是相同的,但會生成大量查詢並且是相當長的腳本。
問題是頁面的某些部分在每個用戶的基礎上進行更改,例如「您以...登錄」部分,因此只保存生成的頁面仍然會導致10,000個幾乎相同的頁面。
主要關注的是減少服務器上的負載,因爲我在共享主機上,並且此時無法升級,但該站點正在使用服務器的相當大一部分CPU +將一個公平的加載MySQL服務器。
因此,基本上最小化每個頁面請求需要完成多少工作,而不是像索引上的新聞項目那樣重新生成索引似乎是一個好的開始,相比之下,搜索是一個不太靜態的頁面。
我實際上認爲硬編碼的新聞項目是純HTML,但這意味着要在幾個地方維護它們(因爲它們可能用於搜索,並且註釋在專用於該新聞項目的頁面上(即news.php )等)。
我看不出這個fullfills我的任何需求,因爲高速緩存中的,似乎是一生的定義,這對我的網站和B-doesn't允許常用更換部件(例如:用戶名不相關)針對每個請求進行更新,而無需重新構建整個頁面... – 2008-10-04 18:04:34