Nejsou totožné. Memcache je starší, ale má určitá omezení. Ve své aplikaci jsem používal v pohodě, dokud jsem si neuvědomil, že nemůžete uložit doslovný FALSE
v mezipaměti. Hodnota FALSE
vrácená z mezipaměti je stejná jako FALSE vrácená, když není v mezipaměti nalezena hodnota. Neexistuje způsob, jak zkontrolovat, která je která. Memcached má další metodu (mimo jiné) Memcached::getResultCode
to vám řekne, zda byl klíč nalezen.
Kvůli tomuto omezení jsem přešel na ukládání prázdných polí místo FALSE
v mezipaměti. Stále používám Memcache, ale chtěl jsem dát tyto informace lidem, kteří se rozhodují.
(Částečně ukradeno z ServerFault)
Myslím, že obě jsou funkčně stejné, ale mají prostě jiné autory a jeden se prostě jmenuje vhodněji než druhý.
Zde je stručný přehled konvencí pojmenování (pro neznalé), který vysvětluje frustraci z dotazujícího:U mnoha aplikací *nix se kus, který vykonává backendovou práci, nazývá „démon“ (předpokládejme „služba“ ve Windows- land), zatímco rozhraní nebo klientská aplikace je to, co používáte k ovládání nebo přístupu k démonu. Démon se nejčastěji jmenuje stejně jako klient a je k němu připojeno písmeno „d“. Například "imap" by byl klient, který se připojuje k démonu "imapd".
Tuto konvenci pojmenování memcache jasně dodržuje, když si přečtete úvod k modulu memcache (všimněte si rozdílu mezi memcache a memcache v tomto úryvku):
Modul Memcache poskytuje praktické procedurální a objektově orientované rozhraní pro memcached, vysoce efektivní cachovací démon, který byl speciálně navržen pro snížení zatížení databáze v dynamických webových aplikacích.
Modul Memcache také poskytuje obsluhu asession (memcache).
Více informací o memcached naleznete na »http://www.danga.com/memcached/.
Frustraci zde způsobuje autor rozšíření PHP, které bylo špatně pojmenováno memcached, protože sdílí stejné jméno jako skutečný démon zvaný memcached. Všimněte si také, že v úvodu do memcached (modul php) se zmiňuje libmemcached, což je sdílená knihovna (nebo API), kterou modul používá pro přístup k démonu memcached:
memcached je vysoce výkonný systém ukládání objektů do mezipaměti s distribuovanou pamětí, obecné povahy, ale určený pro použití při zrychlení dynamických webových aplikací snížením zatížení databáze.
Toto rozšíření používá libmemcachedlibrary k poskytování API pro komunikaci se servery memcached. Poskytuje také obslužný program relace (memcached).
Informace o libmemcached lze nalézt na »http://tangent.org/552/libmemcached.html.