Php

php 如何知道要在哪個 memcached 節點中查找其數據?

  • March 12, 2012

我是 Memcached 集群世界的新手

如果我有一個使用 memcache 的 php Web 應用程序 - 它如何進行雜湊處理並決定要檢查哪個節點來檢查特定值以避免必須全部檢查它們。

獎勵:如何輕鬆添加節點,避免重建所有雜湊。

Memcache 客戶端通過散列鍵值知道要檢查哪個節點。預設情況下,它使用密鑰的 crc32 值。在舊風格中,你會做類似的事情

serverId = crc32(key) % servers.size

這意味著當您添加一個新的伺服器節點時,大多數東西都會重新映射到不同的節點。

為了您的獎勵,請使用新樣式,其中每個節點覆蓋由隨機選擇的伺服器編號而不是每個 Nth 值確定的線性範圍的 crc 值。這稱為一致性雜湊。

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