2009-12-01 16 views
106

Eventuali duplicati:
Using Memcache vs Memcached with PHPMemcache vs. Memcached

Qualcuno mi può spiegare la differenza tra Memcache e Memcached in ambiente PHP? Quali sono i vantaggi di uno rispetto all'altro? si può suggerire anche i criteri utilizzati per scegliere tra l'uno o l'altro?

+6

Non appartiene a serverfault; si tratta dei moduli PHP memcache e memcached; non il daemon stesso. –

+0

http://serverfault.com/questions/63383/memcache-vs-memcached – Toad

risposta

96

(Parzialmente Stolen from ServerFault)

Penso che entrambi sono funzionalmente lo stesso, ma semplicemente diversi autori, e quello è semplicemente il nome più appropriato rispetto agli altri.


ecco un breve backgrounder a convenzioni di denominazione (per chi non conosce), il che spiega la frustrazione da parte del richiedente domanda: Per molte * applicazioni nix, il pezzo che fa il lavoro di back-end è chiamato un "demone" (pensa "servizio" in Windows-land), mentre l'interfaccia o l'applicazione client è ciò che usi per controllare o accedere al demone. Il demone viene spesso chiamato lo stesso del client, con la lettera "d" aggiunta ad esso. Ad esempio "imap" sarebbe un client che si connette al demone "imapd".

Questa convenzione di denominazione è chiaramente di essere rispettato da memcache quando si legge l'introduzione al modulo memcache (notare la distinzione tra memcache e memcached in questo estratto):

modulo Memcache fornisce a portata di mano oggetto procedurale e orientato interfaccia per memcached, altamente daemon di cache efficace , che è stato appositamente progettato per ridurre il carico di database in applicazioni web dinamiche .

Il modulo Memcache fornisce anche un gestore di sessione (memcache).

Ulteriori informazioni sulla memcached possono essere trovato a » http://www.danga.com/memcached/.

La frustrazione qui è causato dall'autore dell'estensione di PHP che è stato mal chiamato memcached, dal momento che condivide lo stesso nome del demone reale chiamato memcached. Si noti inoltre che nell'introduzione memcached (modulo php), si fa menzione di libmemcached, che è la libreria condivisa (o API) che viene utilizzato dal modulo per accedere demone memcached:

memcached è un ad alte prestazioni, memoria cache di oggetti distribuiti di sistema, di natura generica, ma destinato all'utilizzo per accelerare applicazioni web dinamiche da alleviare il carico del database.

Questa estensione utilizza la libreria libmemcc per fornire l'API per che comunica con i server memcached. Fornisce inoltre un gestore di sessione (memcached).

Le informazioni su libmemcached possono essere trovate in » http://tangent.org/552/libmemcached.html.

+0

Ho capito che memcacheD ha l'abilità di lavorare a livello di database con comandi MySQL. In questo modo, il tuo codice non deve nemmeno chiamare metodi di caching speciali. È tutto completato nel database? –

+1

Quindi la differenza tra Memcache vs. Memcached è che hanno autori diversi ?? – kta

+1

sì, hanno autori diversi e un'interfaccia diversa. – Jasen

103

Non sono identici. Memcache è più vecchio ma ha alcune limitazioni. Stavo usando bene nella mia applicazione fino a quando ho capito che non è possibile memorizzare letteralmente FALSE nella cache. Il valore FALSE restituito dalla cache è uguale a FALSE restituito quando un valore non viene trovato nella cache. Non c'è modo di verificare quale è quale. Memcached ha un metodo aggiuntivo (tra gli altri) Memcached::getResultCode che ti dirà se è stata trovata la chiave.

A causa di questa limitazione sono passato alla memorizzazione di array vuoti invece di FALSE nella cache. Sto ancora usando Memcache, ma volevo solo mettere queste informazioni là fuori per le persone che stanno decidendo.

+0

@Mike, Le limitazioni sono ancora lì o ** fisse **? – Pacerier

+13

@ Mike, hai spiegato la differenza perfetta tra Memcache e Memcached. Entrambi hanno una differenza fondamentale mentre memorizzano valore. Memcache considera principalmente ogni valore come stringa mentre Memcached memorizza il suo tipo originale. Complimenti per la tua risposta! – NullPointer

+2

@Le persone più preoccupate si lamenterebbero se tali limiti fossero stati corretti. – Jasen

Problemi correlati