Non sono identici. Memcache è più vecchio ma ha alcune limitazioni. Stavo usando bene nella mia applicazione fino a quando mi sono reso conto che non puoi memorizzare FALSE
letterale nella cache. Valore FALSE
restituito dalla cache è uguale a FALSE restituito quando non viene trovato un valore nella cache. Non c'è modo di verificare quale sia quale. Memcached ha un metodo aggiuntivo (tra gli altri) Memcached::getResultCode
che ti dirà se la chiave è stata trovata.
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.
(Parzialmente rubato da ServerFault)
Penso che entrambi siano funzionalmente uguali, ma semplicemente hanno autori diversi, e uno è semplicemente chiamato in modo più appropriato rispetto all'altro.
Ecco un rapido background nelle convenzioni di denominazione (per chi non lo conosce), che spiega la frustrazione di chi pone la domanda:per molte applicazioni *nix, il pezzo che fa il lavoro di back-end è chiamato "daemon" (si pensi a "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 come il client, con la lettera "d" aggiunta. Ad esempio "imap" sarebbe un client che si connette al demone "imapd".
Questa convenzione di denominazione è chiaramente rispettata da memcache quando leggi l'introduzione al modulo memcache (nota la distinzione tra memcache e memcached in questo estratto):
Il modulo Memcache fornisce una pratica interfaccia procedurale e orientata agli oggetti al demone di memorizzazione nella cache memcached altamente efficace, progettato appositamente per ridurre il carico del database nelle applicazioni web dinamiche.
Il modulo Memcache fornisce anche un gestore di sessione (memcache).
Maggiori informazioni su memcached possono essere trovate su »http://www.danga.com/memcached/.
La frustrazione qui è causata dall'autore dell'estensione PHP che è stata chiamata male memcached, poiché condivide lo stesso nome del demone vero e proprio chiamato memcached. Si noti inoltre che nell'introduzione a memcached (il modulo php), si fa menzione di libmemcached, che è la libreria condivisa (o API) utilizzata dal modulo per accedere al demone memcached:
memcached è un sistema di memorizzazione nella cache di oggetti di memoria distribuita ad alte prestazioni, di natura generica, ma destinato all'uso per velocizzare le applicazioni Web dinamiche alleviando il carico del database.
Questa estensione utilizza la libreria libmemcached per fornire API per la comunicazione con i server memcached. Fornisce inoltre un gestore di sessione (memcached).
Informazioni su libmemcached possono essere trovate su »http://tangent.org/552/libmemcached.html.