Нюансы с настройкой memcached для php (debian).

phpmemcachedadmin

phpmemcachedadmin

phpmemcachedadmin

Этот пост относится скорее к серверной части, чем к коду. Однако и к коду тоже. Сервер с php 5.4.

В дополнение к моему посту об установке memcached.
Был забыт такой важный параметр, как I.
Сейчас в моем конфиге указан -I 10M, что означает размер слабов.

При установке необходимо учитывать версию устанавливаемую на сервер.
Для php 5.4 необходимо полностью обновить версию, включая -dev и php-pear c . Далее для debian.

Добавить репозитории dotdeb

Обновиться

Далее нам нужно установить memcached из , но перед этим определиться с версией. Все версии можно посмотреть на сайте — https://launchpad.net/libmemcached/1.0
Я наткнулся на проблему, что при установке последней версии 1.0.17 и попытке установки последней версии pear memcached — не компилируется. Оказывается последняя версия memcached 2.1.0 не совместима с последней версией libmemcached. Необходимо ставить 1.0.16 или libmemcached >= 1.0.17, если вручную, или можно c dotdeb версию 1.0.10.

Я предпочитаю более последнюю.

Далее если memcached уже был установлен

И в любом случае

И следуя инструкции добавить extension=memcached.so в php.ini.

Еще один нюанс с использованием расширения Memcached в php описан на странице — http://www.php.net/manual/en/memcached.set.php
В двух словах: если ставить время жизни кеша в секундах, то оно не фиксировано. Т.е. если ставить 60 секунд, то кеш удалится в период между n > 0 и n < 60. Лучше ставить таймстамп равный текущему времени плюс время жизни, как показано в примере.

upd
Eсли во время установки из PECL возникают баги, можно поставить последний master.

  • Роман Жуков

    Скажите.. а как мне вот в этом куске кода указать время жизни «как у вас в конце статьи написано»?

    $starttime = explode(‘ ‘, microtime());

    $starttime = $starttime[1] + $starttime[0];

    $memcache = new Memcache();

    $memcache->addServer( ‘127.0.0.1’, 11211 );

    $cacheTTL = 3600;