Я хочу использовать memcached
http://www.danga.com/memcached/
Я установил его через yum install memcached
Но теперь мне нужно подключиться к PHP, и есть расширение с именем memcache и расширение с именем memcached? ARGH
http://us3.php.net/manual/en/book.memcache.php
http://us3.php.net/manual/en/book.memcached.php
Может ли кто-нибудь указать мне правильное направление здесь ... какой из них будет работать?
Кроме того, мне нужно открыть какие-либо порты для его работы, даже если он локальный? После запуска я пробую telnet 127.0.0.1 11211 и получаю отказ в соединении.
Ответы:
Краткий ответ: любой из них - то, что вы ищете, но мой первый выбор - это memcache (первый, который вы перечислили), основанный исключительно на правильном использовании номенклатуры.
Теперь вот как я пришел к такому выводу:
Вот краткий обзор соглашений об именах (для тех, кто незнаком), который объясняет разочарование в виде вопроса: для многих * nix-приложений часть, выполняющая бэкэнд, называется «демон» (думаю, «сервис» в Windows- земля), в то время как интерфейс или клиентское приложение - это то, что вы используете для управления или доступа к демону. Демон чаще всего именуется так же, как и клиент, с добавленной к нему буквой «d». Например, «imap» будет клиентом, который подключается к демону «imapd».
Это соглашение об именах четко соблюдается memcache, когда вы читаете введение в модуль memcache (обратите внимание на различие между memcache и memcache в этом фрагменте):
Разочарование здесь вызвано автором расширения PHP, которое было плохо названо memcached , так как оно имеет то же имя, что и реальный демон, называемый memcached . Также обратите внимание, что во введении к memcached (модуль php) в нем упоминается libmemcached , который является общей библиотекой (или API), которая используется модулем для доступа к демону memcached:
Таким образом, оба функционально одинаковы, но у них просто разные авторы, и один просто назван более подходящим, чем другой.
источник
memcached
например, поддерживает токены,memcache
нет. Если вам это нужно, вы знаете, какой (плохо названный или нет) выбрать.Вы, вероятно, хотите увидеть сравнение клиентов PHP .
Краткая версия: они оба будут работать, и в большинстве случаев любой из них будет работать нормально.
Что касается другой проблемы: да, вы должны быть в состоянии сделать
telnet 127.0.0.1 11211
. Очень немногие брандмауэры блокируют локальный хост от общения с самим собой. Если вы не можете подключиться, убедитесь, что memcached действительно работает, выполнивps auxwww | grep memcached
команду, которая также покажет вам аргументы командной строки, использованные для запуска memcached. Одним из аргументов должен быть-p 11211
или другой номер порта. Смотритеman memcached
значение всех возможных аргументов.источник
ps auxwww | grep memcached
?Как показывает ссылка Нейта, оба варианта отлично работают при простом использовании. Тем не менее, memcached поддерживает больше функций, которые позволяют вам получить максимальную производительность от memcached. Бинарный протокол уменьшает объем данных, необходимых для отправки между клиентом и сервером. Мультигеты и мультимножества позволяют вам получать / устанавливать несколько элементов одновременно. Если вы обнаружите, что вам нужна дополнительная память из memcache, лучше всего использовать memcached. Использование libmemcached позволяет предположить, что сама библиотека, возможно, более оптимизирована, чем версия только для PHP.
Memcached - более новый модуль по сравнению с memcache, выпущенный только 8 месяцев назад. Если вам нужно настроить таргетинг на более старую версию PHP, вы можете использовать только memcache.
источник
Называется более старое, пухлое,
php-memcache
потому что это казалось наиболее подходящим именем. Новая, лучшая версия, независимо разработанная людьми в Digg, была названаphp-memcached
в интересах устранения неоднозначности.Люди, которые порекомендуют вам выбрать одно из другого, основываясь исключительно на правильности названия, на самом деле не имеют бизнеса, предлагающего технические консультации.
источник
Недавно воспользовавшись php-memcache, я должен указать вам на php-memcache.
Вот несколько причин из головы ...
1) Нет getErrorCode () или эквивалентного метода, поэтому, если get () возвращает FALSE, вы не будете знать, связано ли это с тем, что значение, хранящееся в memcache, является ложным, или была какая-то проблема.
2) Кажется, что его алгоритм хеширования для согласованного хеширования отличается от других реализаций, таких как множество клиентских библиотек, созданных из libmemcached. Это означает, что если вы хотите использовать один и тот же кластер memcache с несколькими языками, у вас, скорее всего, возникнут проблемы, при которых вы сохраните значение с помощью клиента PHP, а другие клиенты его не найдут.
источник
У обоих есть проблемы на сегодняшний день. PECL / memcache старый и надежный, за некоторыми исключениями, если он устарел. PECL / memcached 1.x в лучшем случае является бета-версией. Некоторые функции не работают с цифровыми клавишами, они пропускают соединения при использовании постоянных соединений. Некоторые (все?) Исправлены в GitHub и будут выпущены в какой-то момент в 2.x, но не сегодня. Для более подробного обзора см. Http://brian.moonspot.net/php-memcached-issues
источник
Я работаю над книгой "Эксперт PHP и MySQL". Я написал почти то же самое о различиях. То, что я рекомендовал, было PECL / memcached. # 1 - оборачивается полнофункциональной хорошо работающей библиотекой C # 2 - поддерживается совсем недавно. № 3 - больше возможностей. Нет пренебрежения к PECL / memcache.
источник
У меня были довольно серьезные проблемы с Drupal 6 и php-pecl-memcached, в которых время отклика было задержано до 5 мс на вызов и заставило один конкретный сайт создать в 5 раз больше вызовов, чем до перехода на php-pecl-memcached , Переход на php-pecl-memcache исправил все проблемы; задержка и дополнительные звонки.
Этот ответ здесь исключительно для того, чтобы помочь тем, кто использует Drupal 6 и, возможно, Drupal 7.
источник
И есть другие клиенты для memcached, см. Http://code.google.com/p/memcached/wiki/Clients
Вырезать и вставить из Интернета:
http://www.php.net/manual/en/intro.memcache.php
http://www.php.net/manual/en/intro.memcached.php
http://pecl.php.net/package/memcached "Расширение PHP для взаимодействия с memcached через библиотеку libmemcached" Это расширение использует библиотеку libmemcached для предоставления API для связи с серверами memcached. https://github.com/andreiz/php-memcached
http://pecl.php.net/package/memcache «расширение memcached» Memcached - это демон кэширования, разработанный специально для динамических веб-приложений, чтобы уменьшить нагрузку на базу данных путем хранения объектов в памяти. Это расширение позволяет работать с memcached через удобный OO и процедурный интерфейс.
http://code.google.com/p/memcached/wiki/PHPClientComparison
источник