Возможный дубликат:
Использование Memcache vs Memcached с PHP
Кто-то может объяснить мне разницу между Memcache и Memcached в среде PHP? Каковы преимущества одного над другим? Можете ли вы также предложить критерии, используемые для выбора одного или другого?
(Частично украденный из ServerFault )
Я думаю, что оба функционально одинаковы, но у них просто разные авторы, и их просто называют более подходящими, чем другие.
Вот краткая ссылка в соглашениях об именах (для тех, кто незнакомец), что объясняет разочарование респондентом вопроса: для многих приложений * nix часть, выполняющая работу с базой данных, называется «демоном» (подумайте «сервис» в Windows- земля), а интерфейс или клиентское приложение – это то, что вы используете для управления или доступа к демонам. Демон чаще всего называют тем же, что и клиент, с прилагаемой к нему буквой «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 .
Они не идентичны. Memcache старше, но имеет некоторые ограничения. В моем приложении я отлично использовал, пока не понял, что вы не можете хранить буквальный FALSE
в кеше. Значение FALSE
возвращаемое из кеша, совпадает с возвратом FALSE, когда значение не найдено в кеше. Невозможно проверить, что именно. Memcached имеет дополнительный метод (среди прочих) Memcached::getResultCode
, который скажет вам, был ли найден ключ.
Из-за этого ограничения я переключился на сохранение пустых массивов вместо FALSE
в кеше. Я все еще использую Memcache, но я просто хотел разместить эту информацию для людей, которые решают.