2012-03-09 111 views
1

我們正在運行一個執行財務建模的網站,並且memcache需要一段時間來構建其緩存。例如,1周後,點擊次數僅爲48%,所使用的緩存爲2GB(分配的5GB之中)。由於我們不希望在服務器崩潰或需要重新啓動時丟失緩存,因此我們希望將其保存在某處。將memcache數據保存到文件或數據庫中

問:什麼是用於存儲memcache緩存某處永久的內容(和恢復的內容)的最佳選擇?

到目前爲止,我們還沒有看到memcache達到點擊的%沒有改善的點。我們知道我們很快得到30%點擊數據,其中300MB對應於共享內容的緩存。之後,對象變得更大,創建的次數也更少。通過查看我們的munin圖表,我會說我們可以在2到3個月內達到我們最好的%。我真的認爲我們有保存我們的memcache數據的情況。

enter image description here

僅供參考,我不加入顯示命中/未命中的%,因爲它的發展,所以慢慢地,它是不是真正可讀的圖表。

+0

您爲memcached分配了多少內存?你提到的是2GB?如果緩存已滿並且命中率較低,則可能用完了緩存空間,而memcached正在清除最舊的條目(這仍可能是有效的)。 – bhamby 2012-03-09 16:16:52

+0

Filesystem或Berlkey-DB會更好。你也可以使用'Redis',它就像memcache一樣,同時自動處理持久化存儲。 – kirilloid 2012-03-09 16:18:01

+0

@galador:我們已經爲內存緩存分配了'5GB',現在它的'48%'分配了'2GB'。 – Max 2012-03-09 16:22:38

回答

1

我不建議在金融Redis的使用生產環境,此時它會變得不穩定。這是未來需要注意的問題。

CouchBase是一個解決方案。

您還可以使用repcached(http://repcached.lab.klab.org/)將memcache數據複製到第二個memcache守護進程,以防第一個崩潰,您仍然擁有所有的memcache數據。如果你願意,你也可以使用這種類型的設置來平衡你的memcache使用情況,我已經使用了它一段時間了,並且對它的性能感到非常滿意。