Memcache Vs. Memcached

Возможный дубликат:
Использование Memcache и Memcached с PHP

Кто-то может объяснить мне разницу между Memcache и Memcached в среде PHP? Каковы преимущества одного над другим? Можете ли вы также предложить критерии, используемые для выбора одного или другого?

Ответ 1

(Частично Украден из ServerFault)

Я думаю, что оба функционально одинаковы, но у них просто разные авторы, и один просто называется более подходящим, чем другой.


Вот краткая ссылка в соглашениях об именах (для тех, кто незнакомец), что объясняет разочарование респондентом вопроса: для многих приложений * nix часть, выполняющая работу с бэкэнд, называется "демоном" (думаю, "сервис", в Windows-land), а интерфейс или клиентское приложение - это то, что вы используете для управления или доступа к демону. Демон чаще всего называют тем же, что и клиент, с прилагаемой к нему буквой "d". Например, "imap" будет клиентом, который подключается к демону "imapd".

Это соглашение об именах явно соблюдается memcache, когда вы читаете введение в модуль memcache (обратите внимание на различие между memcache и memcached в этом выдержке):

Модуль Memcache удобен процедурного и объектно-ориентированного интерфейс к memcached, высоко эффективного демона кэширования, который был специально предназначенные для уменьшения загрузка базы данных в динамической сети приложения.

Модуль Memcache также предоставляет обработчик сеанса (memcache).

Дополнительная информация о memcached может найти на " http://www.danga.com/memcached/.

Фрустрация здесь вызвана автором расширения PHP, которое было плохо названо memcached, поскольку оно имеет то же имя, что и фактический демон, называемый memcached. Также обратите внимание, что во введении к memcached (php-модуль) упоминается libmemcached, который является общей библиотекой (или API), которая используется модулем для доступа к демону memcached:

memcached - это высокопроизводительный, кеширование распределенной памяти система, общая по своей природе, но предназначенные для ускорения динамических веб-приложений облегчая загрузку базы данных.

Это расширение использует libmemcached библиотеки для предоставления API для связь с серверами memcached. Он также предоставляет обработчик сеанса (Memcached).

Информация о libmemcached может быть найдено по адресу " http://tangent.org/552/libmemcached.html.

Ответ 2

Они не идентичны. Memcache старше, но имеет некоторые ограничения. Я использовал в своем приложении только то, что понял, что вы не можете хранить литерал FALSE в кеше. Значение FALSE, возвращаемое из кеша, совпадает с возвратом FALSE, когда значение не найдено в кеше. Невозможно проверить, что именно. Memcached имеет дополнительный метод (среди прочих) Memcached::getResultCode, который скажет вам, был ли найден ключ.

Из-за этого ограничения я переключился на сохранение пустых массивов вместо FALSE в кеше. Я все еще использую Memcache, но я просто хотел разместить эту информацию для людей, которые решают.