2010-06-02 96 views
3

我有一個個人緩存類,在這裏可以看到(基於關閉WordPress的):
http://pastie.org/988427個人緩存vs Memcache?

我最近了解內存緩存,它說的memcache一切:
http://highscalability.com/blog/2010/5/17/7-lessons-learned-while-building-reddit-to-270-million-page.html

我首先想到的只是爲了保留我的類與當前函數,並使其使用memcache - 是否有任何缺點做到這一點?

我看到的主要區別是,memcache與頁面之間的服務器保持連接,而我的頁面負載爲1頁。我看到的問題在任何系統中都會產生,這是因爲它們是動態的。他們一直在變化。無論是搜索結果,可見產品等等。如果全部緩存,是不是會產生問題?

有沒有辦法解決這個問題?顯然,如果每次都會緩存相同的結果,但這就是爲什麼我在每頁加載的基礎上進行的。我確定有辦法處理這個問題,或者緩存時間通常在5分鐘到1小時之間?

+1

在大量高容量的應用程序中,使用緩存策略並不少見,例如您已經使用的緩存策略* AND * memcache。在請求期間緩存PHP變量中的東西要比去memcache快得多。 – 2010-06-02 01:38:55

+0

非常感謝您的評論 - 我非常想知道什麼是最好的。 – 2010-06-02 02:53:46

回答

1

你當然需要一個好的緩存策略來避免陳舊數據的問題。使用動態數據和使用memcached,您將不得不刪除某些數據更新中的緩存條目。你不能只依靠緩存項來超時。使用memcached,您可以緩存部分動態內容以生成特定的頁面。如果你想緩存完整的html文檔,我會推薦使用像varnish這樣的反向代理(http://varnish-cache.org/)。

+0

我想在這裏的關鍵是「你將不得不刪除某些數據更新的緩存條目」。 – 2010-06-02 17:12:26