Sono un principiante nell'imparare memcached. Il server memcached mi ha confuso di più. Posso vederlo come un singolo server come il web server? Sono anche confuso sulla relazione tra il server memcached e il client, si trovano in computer diversi?Cos'è il server memcached
risposta
Sono d'accordo con la maggior parte delle cose @phihag ha risposto, ma devo chiarire alcune cose.
Memcached memorizza i dati in base a una chiave (phihag lo ha chiamato id, da non confondere con gli ID del database). I dati possono essere di varie dimensioni in modo da poter memorizzare piccoli bit (come 1 record estratto dal database) o è possibile memorizzare enormi blocchi di dati (come centinaia di record o intere pagine html).
Memcached non è tipicamente utilizzato sulla stessa macchina del server delle applicazioni, la ragione di questo è perché è progettato per essere utilizzato con TCP (sarebbe accessibile tramite prese se fosse progettato per funzionare allo stesso server) ed è stato progettato come server di pooling.
La parte di pool è interessante: è possibile avere 10 macchine che eseguono Memcached assegnando un massimo di 10 GB di ram per questo scopo. 10 * 10 = spazio RAM di 100 GB.
Quando si scrive un valore in Memcached, solo uno (in modo casuale o tramite alcuni algoritmi) dei server lo memorizza. Quando provi a leggere un valore da Memcached, solo il server che lo ha memorizzato lo invierà a te.
Quindi, in effetti, è possibile mettere tutto il database/memcached/application/fileserver sulla stessa macchina e in genere lo si fa per la sandbox di sviluppo. Ma puoi anche aggiungere a e metterli su una macchina separata e qualsiasi altra combinazione dei due.
Se è necessario un solo server Memcached, sarà probabilmente necessario ospitarlo sullo stesso computer del codice dell'applicazione.
Se si inizia a utilizzare un server cache front-end come la vernice o si configura NginX come server cache front-end, sarà necessario configurare alcuni server Memcached per archiviare i dati che questi server cache front-end stanno memorizzando nella cache .
Se si distribuisce il database in più server e file server in una rete CDN, ciò significa che l'applicazione gestisce una grande quantità di dati in un breve periodo di tempo, quindi è necessario molto spazio sulla RAM che non potrebbe essere disponibile in un singolo server applicazioni.
E poiché l'estensione di un pool di memoria per un server Memcached è semplice come aggiungere l'IP del nuovo server all'elenco, si ridimensionerà orizzontalmente come in molti server (che è l'uso tipico di Memcached).
Il server memcached è un programma che gestisce i dati che memorizza memcached (da non confondere con una macchina di , che può anche essere chiamato server). In teoria, può essere eseguito su qualsiasi computer. Tuttavia, in genere viene eseguito sullo stesso computer su cui viene eseguita l'applicazione principale.
L'applicazione utilizza quindi il client memcached per parlare con il server memcached e chiedere il contenuto memorizzato nella cache. Questo è più veloce di interrogazione dei dati da un database tradizionale, perché
- Un server memcached solo le mappe ID per i valori, e non ha bisogno di eseguire la scansione di un'intera tabella
- Il protocollo memcached è più semplice. Il server non ha bisogno di analizzare SQL o così, e il client non ha bisogno di crearlo.
- Poiché memcached non richiede l'affidabilità di un database (si pensi a backup, isolamento dei guasti, clustering, sicurezza, ecc.), Può essere eseguito sullo stesso computer su cui viene eseguita l'applicazione. Mentre è possibile eseguire un database sullo stesso computer su cui vengono eseguite le applicazioni, ciò è disapprovato per i motivi sopra esposti.
Grazie mille! L'applicazione comunica con il suo client memcached, quindi il client richiede il server memcached per ottenere i dati. In genere, l'applicazione, il client memcached e il server memcached si trovano sullo stesso computer. E diversi client memcached possono comunicare con altri server memcached che sono in esecuzione su macchine diverse in base al loro protocollo. È il sopra giusto? –
Sì, è proprio così. – phihag
Posso dividerli in due parti? Uno è il server Web che include l'applicazione, il client memcached e il server memcached. L'altro è il server db. –
- 1. Come collegare insieme il server MemCached?
- 2. Memcached vs cache SQL Server
- 3. Più server memcached in discussione
- 4. Rails, Passenger e Memcached: impossibile trovare il server durante l'inizializzazione
- 5. memcached rallenta il sito web
- 6. Posso usare APC E memcached sullo stesso server?
- 7. Log Memcached Activity
- 8. Piattaforme per l'esecuzione di memcached
- 9. trattamento con memcached/hashing coerente
- 10. Memcached - Come funziona
- 11. Cache multiple in Memcached
- 12. php, memcached, protocollo binario
- 13. Symfony2/integrazione Memcached
- 14. come iniziare con memcached
- 15. richiesta cache memcached?
- 16. memcacheD Va bene?
- 17. È possibile aggiungere dinamicamente più memoria alla memcached (cioè senza riavviare il server)?
- 18. Quando utilizzare memcached
- 19. Memcached LRU e scadenza
- 20. Memcache vs. Memcached
- 21. Sessioni Failover con PHP-memcache contro memcached
- 22. Come posso accedere a memcached con Javascript?
- 23. memcached che autentica le connessioni remote
- 24. memcached-session-manager su AWS
- 25. aumenta la dimensione massima dell'articolo in memcached?
- 26. nginx con il pallone e memcached restituisce alcuni caratteri incomprensibili
- 27. Connessioni persistenti alla memcached in PHP
- 28. Codici risultato estensione Memcached PHP
- 29. Memorizzazione nella cache delle immagini in Memcached
- 30. Come rendere SQLAlchemy utilizzare Memcached?
Sorprendente risposta. Mi aiuta davvero molto. Grazie e anche @phihag. –
@AllenJee potresti per favore contrassegnare la risposta come accettata? –
in che modo il server Memcached esegue il backup dei dati? – trillions