這個問題的標題可能會令人困惑,但問題很簡單。如何以分佈方式在memcached中使用Zend_cache?
我使用Zend_Cache和memcached作爲後端。我有兩個模塊叫做「最後的文章」和「熱門文章」。這兩個模塊的是每一個網頁,並使用類似的查詢,如:
Select * from table where status = 'published' and category = '' order by dateCreated|/popularity\
我的表有150萬行至今。我在上一個查詢中使用的每個字段都有索引。 我緩存最近的文章1小時,並流行4小時。我有4個Web服務器(php5/apache2)和1個數據庫服務器(mysql)。表引擎是innoDB。
問題有一段時間我的緩存在重負載中正好過期,這使得我的網站不可用,直到這些模塊再次被緩存爲止。我可以有一個新的MYSQL服務器。
但有沒有辦法以更聰明的方式處理緩存?例如server1將嘗試刷新緩存,而服務器2,3和4仍然使用緩存中的相同值。
我可以寫一些代碼來做到這一點,但我想知道是否有辦法直接用Zend_Cache做到這一點?如果有一種設計模式可以應用於我的問題?
[編輯]我想要的東西,我可以擴展到100個服務器
問題是查詢是每個「類別」,我有幾十萬個類別,因此每個類別有兩個查詢... +我會刷新一些沒有每天訪問的類別的事實。 – zzarbi