Я запускаю ubuntu gutsy (7.1), php5 и пытаюсь запустить memcached локально. Я установил все согласно документации: демон memcached, расширение php PECL, libevent и т. Д.
Но теперь я могу запустить только половину примера скрипта для memcached append ():
<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);
$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>
Сценарий завершает @ append () символом RES_BAD_PROTOCOL
сообщение об ошибке. Он по-прежнему запускает get (). Я не знаю, почему в противном случае memcached работал бы нормально (подключиться, установить, получить - с правильным значением «abc») и не работать для добавления.
Он также не работает с prepend.
Я считаю, что правильно настроил, но не уверен. Может есть проблемы совместимости между версиями зависимостей?
Добавление протокола на самом деле это скорее команда, используемая в протоколе, чем фактический автономный протокол.
Упс. У меня только что была установлена очень старая версия memcached. 1.2 что-то. Установил более новую из исходников. Я, должно быть, получил старую из репозитория ubuntu. (новая версия 1.4 кое-что)
Не уверен, в какой версии были добавлены функции append () и prepend.
Плохой протокол означает, что демон не понимает команду, в отличие от ошибки сервера или клиента ... что, как я считаю, является другим кодом ошибки.