Ils ne sont pas identiques. Memcache est plus ancien mais il a quelques limitations. J'utilisais très bien dans mon application jusqu'à ce que je réalise que vous ne pouvez pas stocker le littéral FALSE
en cache. Valeur FALSE
renvoyé du cache est le même que FALSE renvoyé lorsqu'une valeur n'est pas trouvée dans le cache. Il n'y a aucun moyen de vérifier qui est quoi. Memcached a une méthode supplémentaire (entre autres) Memcached::getResultCode
qui vous dira si la clé a été trouvée.
En raison de cette limitation, je suis passé au stockage de tableaux vides au lieu de FALSE
en cache. J'utilise toujours Memcache, mais je voulais juste mettre cette information là-bas pour les personnes qui décident.
(Partiellement volé de ServerFault)
Je pense que les deux sont fonctionnellement identiques, mais ils ont simplement des auteurs différents, et l'un est simplement nommé de manière plus appropriée que l'autre.
Voici un bref aperçu des conventions de nommage (pour ceux qui ne sont pas familiers), qui explique la frustration du demandeur de la question :pour de nombreuses applications *nix, la pièce qui fait le travail de backend s'appelle un "démon" (pensez "service" dans Windows- land), tandis que l'interface ou l'application client est ce que vous utilisez pour contrôler ou accéder au démon. Le démon porte le plus souvent le même nom que le client, avec la lettre "d" en annexe. Par exemple "imap" serait un client qui se connecte au démon "imapd".
Cette convention de nommage est clairement respectée par memcache lorsque vous lisez l'introduction du module memcache (notez la distinction entre memcache et memcached dans cet extrait) :
Le module Memcache fournit une interface procédurale pratique et orientée objet au démon de mise en cache hautement efficace de Memcached, qui a été spécialement conçu pour réduire la charge de la base de données dans les applications Web dynamiques.
Le module Memcache fournit également un gestionnaire de session (memcache).
Plus d'informations sur memcached peuvent être trouvées sur »http://www.danga.com/memcached/.
La frustration ici est causée par l'auteur de l'extension PHP qui a été mal nommée memcached, car elle partage le même nom que le démon réel appelé memcached. Notez également que dans l'introduction de memcached (le module php), il est fait mention de libmemcached, qui est la bibliothèque partagée (ou API) utilisée par le module pour accéder au démon memcached :
memcached est un système de mise en cache d'objets à mémoire distribuée hautes performances, de nature générique, mais destiné à être utilisé pour accélérer les applications Web dynamiques en allégeant la charge de la base de données.
Cette extension utilise libmemcachedlibrary pour fournir une API pour communiquer avec les serveurs memcached. Elle fournit également un gestionnaire de session (memcached).
Des informations sur libmemcached peuvent être trouvées sur »http://tangent.org/552/libmemcached.html.