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.

  • Il mio amministratore del server desidera impostare le autorizzazioni di scrittura pubbliche in una directory
  • V8js module PHP su Linux - Imansible trovare libv8.so
  • perché "php -i | grep php.ini" non trova il path corretto a php.ini?
  • Il modo migliore per rendere RHSCL PHP disponibile a livello globale
  • Che cosa fa apc.mmap_file_mask davvero?
  • PHP Errore irreversibile: chiamata alla function undefined mysql_pconnect () in
  • Bonus: Come faccio ad aggiungere facilmente un nodo in modo da evitare di wherer ribuild tutti gli hash.

  • Sto progettando un sistema per gestire 10000 connessioni TCP al secondo, quali problemi posso fare?
  • Suggerimenti per massimizzare le richieste Nginx / sec?
  • 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.