Sie sind nicht identisch. Memcache ist älter, hat aber einige Einschränkungen. Ich habe in meiner Anwendung gut gearbeitet, bis mir klar wurde, dass Sie den wörtlichen FALSE
nicht speichern können im Cache. Wert FALSE
vom Cache zurückgegeben wird, ist dasselbe wie FALSE, das zurückgegeben wird, wenn ein Wert nicht im Cache gefunden wird. Es gibt keine Möglichkeit zu überprüfen, was was ist. Memcached hat zusätzlich die Methode (unter anderem) Memcached::getResultCode
das wird Ihnen sagen, ob der Schlüssel gefunden wurde.
Aufgrund dieser Einschränkung bin ich dazu übergegangen, leere Arrays statt FALSE
zu speichern im Cache. Ich verwende Memcache immer noch, aber ich wollte diese Informationen nur für Leute veröffentlichen, die sich entscheiden müssen.
(Teilweise von ServerFault gestohlen)
Ich denke, dass beide funktional gleich sind, aber sie haben einfach unterschiedliche Autoren, und der eine ist einfach passender benannt als der andere.
Hier ist ein kurzer Hintergrund zu Namenskonventionen (für diejenigen, die sich nicht auskennen), der die Frustration des Fragestellers erklärt:Für viele * nix-Anwendungen wird das Teil, das die Backend-Arbeit erledigt, als "Daemon" bezeichnet (denken Sie an "Dienst" in Windows- land), während die Schnittstelle oder Client-Anwendung das ist, was Sie verwenden, um den Daemon zu steuern oder darauf zuzugreifen. Der Daemon wird meistens genauso benannt wie der Client, mit dem angehängten Buchstaben „d“. Zum Beispiel wäre "imap" ein Client, der sich mit dem "imapd"-Daemon verbindet.
Diese Namenskonvention wird von Memcache eindeutig eingehalten, wenn Sie die Einführung zum Memcache-Modul lesen (beachten Sie die Unterscheidung zwischen Memcache und Memcache in diesem Auszug):
Das Memcache-Modul bietet eine praktische prozedurale und objektorientierte Schnittstelle zu einem hocheffektiven Caching-Daemon mit Memcache, der speziell entwickelt wurde, um die Datenbanklast in dynamischen Webanwendungen zu verringern.
Das Memcache-Modul stellt auch einen Session-Handler (Memcache) bereit.
Weitere Informationen zu Memcached finden Sie unter »http://www.danga.com/memcached/.
Die Frustration hier wird durch den Autor der PHP-Erweiterung verursacht, die schlecht Memcached genannt wurde, da sie den gleichen Namen trägt wie der eigentliche Daemon namens Memcached. Beachten Sie auch, dass in der Einführung zu Memcached (dem PHP-Modul) libmemcached erwähnt wird, die gemeinsam genutzte Bibliothek (oder API), die vom Modul verwendet wird, um auf den Memcached-Daemon zuzugreifen:
memcached ist ein hochleistungsfähiges, verteiltes Objekt-Caching-System mit verteiltem Speicher, das allgemeiner Natur ist, aber zur Beschleunigung dynamischer Webanwendungen durch Verringerung der Datenbanklast vorgesehen ist.
Diese Erweiterung verwendet libmemcachedlibrary, um eine API für die Kommunikation mit Memcached-Servern bereitzustellen. Sie stellt auch einen Sitzungshandler (Memcached) bereit.
Informationen zu libmemcached finden Sie unter »http://tangent.org/552/libmemcached.html.