Come fa il php a sapere quale nodo memcached cercherà i propri dati?

Sono nuovo al mondo dei cluster Memcached

Se ho un'applicazione web php che utilizza memcache – come fa il suo hash e decidi quale nodo per controllare un valore particolare per evitare di controllarli tutti.

Bonus: Come faccio ad aggiungere facilmente un nodo in modo da evitare di wherer ribuild tutti gli hash.

  • Apache log di errori con errori PHP
  • Come configurare IIS per consentire l'accesso alle risorse di networking per gli script PHP?
  • Errori PHP (via FastCGI) con Nginx su Ubuntu Linode
  • PHP magic_quotes_gpc = distriggersto ma le barre sono ancora aggiunte
  • Imansible installare freetds php-mssql su Centos7
  • Apache, PHP, "Avviso di I / O: imansible caricare l'entity framework; esterna" a volte
  • Versioni multiple di php simultaneamente su Ubuntu
  • Come faccio ad abilitare il supporto JPEG per PHP?
  • One Solution collect form web for “Come fa il php a sapere quale nodo memcached cercherà i propri dati?”

    I client Memcache conoscono il nodo da controllare facendo hashare il valore chiave. Per impostazione predefinita utilizza il valore crc32 della chiave. Nel vecchio stile, farebbe qualcosa di simile

    serverId = crc32(key) % servers.size 

    Ciò ha significato che quando si aggiunge un nuovo nodo di server, la maggior parte delle cose riformsrebbe a un nodo diverso.

    Per il tuo bonus, utilizzare il nuovo stile in cui each nodo copre un rage lineare di valori crc determinati da un numero di server selezionato in modo random, piuttosto che each valore Nth. Questo si chiama hashing coerente.

    • Configurazione PHP per esso
    • Articolo che descrive un hashing coerente
    • Un altro articolo che descrive un hashing coerente
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.