Performance

memcache 是如何分佈的?

  • February 22, 2016

我在 5 個 Web 伺服器上執行了 memcache,所有這些伺服器都在 php 的主機列表中,並且在前端進行了負載平衡。因此,由於應該分發 memcached,php 客戶端將決定將鍵/值對寫入哪個節點並保留記錄以供以後從同一節點檢索,對嗎?

還是 php 客戶端程式碼不夠聰明,無法做到這一點,而是將數據寫入所有伺服器,然後從池中隨機抽取一張以供讀取?

但如果它這樣做了;寫入主機列表/池中的所有實例;那麼像http://repcached.sourceforge.net/這樣複製數據以實現冗餘的工具的目的是什麼。

我問的原因是因為所有負載平衡伺服器都在執行它,如果它確實寫入池中的所有伺服器,那麼它似乎違背了它被分發的目的,所以我應該強制 php 從主機中提取在 localhost 的主機列表中。

Memecache 庫負責將請求發送到正確的伺服器。該庫使用您提供的列表將請求發送到不同的伺服器,並且 memcache 不進行複制。

請參閱Linux 期刊文章。它更詳細地解釋了 memcache 的工作原理。

引用自:https://serverfault.com/questions/210417