2011-02-25 60 views
0

我剛剛安裝了memcached,並嘗試了一些在php.net 上找到的示例代碼,但由於我是這方面的新手,我沒有得到使用它的優勢,我可以在會話或cookie中存儲相同的數據..PHP memcached,真正的特權是什麼?

比如我經營着一家房地產網站,用戶做了很多的搜索/查詢MySQL和大量的Ajax查詢

,據我瞭解,我可以CHACE這些查詢......但發生什麼事如果結果發生變化是因爲有人發佈了新廣告? memcached如何知道這一點?

所以,問題是,爲什麼我應該使用它,並在極度的場合?

謝謝!

+0

您目前在處理負載時有問題嗎? – Fosco

+0

由於你是一個新手,除非你真的需要它,否則請不要擔心memcache。您如何知道您需要它? - 當您的服務器無法處理查詢/搜索時。只需索引表格中的正確字段,即可快速獲得增強功能。 –

+0

我確實索引了所有內容...但是,例如每個用戶每頁都會調用他的數據,所以我認爲這是很好的使用memchaced ... – Francesco

回答

3

你必須知道要緩存什麼和不緩存什麼。以你爲例,說你的網站瘋狂楊樹,你有1億房地產清單。而且你有數百萬用戶在搜索並查看細節。這是很多疑問!

輸入Memcached,如果您(例如)通過保存該查詢的結果緩存Memcached中的詳細列表視圖,可以減少負載量。這是因爲,除了第一次服務器查詢MySQL之外,其他所有命中都在Memcached上。

您可以做的另一件事是通過將搜索查詢哈希存儲爲關鍵字來保存搜索結果。取決於你擁有多少內存,這將再次降低負載,因爲Memcached只是提供緩存頁面。

您需要決定您要保留緩存的時間以及失效方案的運行方式(可能在添加新屬性時清除密鑰,或者每天只更新一次)。

+0

我看到...所以你可以估計有多少訪問者或綜合瀏覽量可以成爲關鍵?現在我在一個只有512mb的中介服務器上運行,我只是把網站放到網上...所以你說,除非我每天有100,000個訪問者,否則我不應該擔心? – Francesco

+1

如果您的MySQL服務器在您的Apache服務器嗡嗡聲中開始燃燒,並且您已經修復了慢查詢日誌中的所有錯誤查詢,那麼您可以開始查看Memcached。在那之前沒有意義 – JohnP