
Официальный сайт - http://memcached.org
Прежде всего проверяем не установлено ли данное php-расширение. Для этого можно выполнить строку кода
echo phpinfo();Если блок с названием memcache отсутствует, значит нужно устанавливать.
Установка memcache под Windows в качестве php-расширения.
Для скачивания открываем ссылку.Там нужно выбрать версию файла согласно своего окружения:
- vc14 & vc15
- x86 & x64
- ts & nts
phpinfo();
Первый параметр смотрим в графе Compiler.
Второй в графе Architecture.
Третий в графе PHP Extension Build.
Скачиваем нужный dll файл, например из папки vc14/x86/ts.
Переименовываем файл в php_memcache.dll и перемещаем в папку ext что в каталоге с вашей версией php.
Так же скачать memcache можно этой ссылке.
Далее включаем php_memcache в php.ini, добавив строку:
extension=php_memcache.dllПерезагружаем сервер.
Проверяем появился ли раздел «memcache» в выводе функции phpinfo();
Сервер memcached.
Скачиваем сервер memcached.Для linux по ссылке, там архив с примером установки.
Для Win например от сюда.
Если используется OpenServer, то там он уже присутствует в папке OpenServer\modules\memcached. Выбираем папку с более новой версией и кликаем по файлу memcached.exe для запуска. При этом появится окошко которое должно быть открыто пока сервер memcached запущен.
Так же можно запустить из командной строки. Для этого в командной строке переходим к папке с файлом:
d: cd D:\OpenServer 5.2.7\modules\memcached\Memcached-1.4-x64и запускаем вводом названия exe файла:
memcached
Список всех доступных команд:
memcached -h
В настройках OpenServerа указывается порт, который будет использовать memcached:

Оставляем без изменений. А на закладке «Разное» указывается объем памяти который выделен для memcached.
После этого уже можно кэшировать.
Примеры использования.
Стандартный пример использования memcache:$memcache = memcache_connect('localhost', 11211); if ($memcache) { $memcache->set("str_key", "String to store in memcached"); $memcache->set("num_key", 123); $object = new StdClass; $object->attribute = 'test'; $memcache->set("obj_key", $object); $array = Array('assoc'=>123, 345, 567); $memcache->set("arr_key", $array); var_dump($memcache->get('str_key')); var_dump($memcache->get('num_key')); var_dump($memcache->get('obj_key')); } else { echo "Connection to memcached failed"; }
В данном примере примеры кэширования строк, чисел, объектов и массивов.
Первой строкой создается соединение. Далее два основных метода для работы – set для записи данных, get для чтения.
Memcache::Set http://php.net/manual/ru/memcache.set.php
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
Memcache::set() записывает элемент со значением var на сервере memcache с указанным ключем key.
- key
- var
- flag
expire
Время жизни элемента. Если равно нулю, элемент никогда не устаревает. Так же вы можете использовать Unix timestamp или число секунд начиная с текущего момента, однако, число секунд не может быть больше 2592000 (30 дней).
При указании MEMCACHE_COMPRESSED для поддержки сжатия "на лету", нужно проверить включен ли zlib в php.ini:
zlib.output_compression = On
Другой способ создания подключения с сервером memcache и использованием метода set:
$memcache_obj = new Memcache(); /* подключение к memcached серверу */ $memcache_obj->connect('localhost', 11211); /* Установить значение элемента с ключем 'var_key' использую сжатие "на лету" и временм жизни 50 секунд. */ $memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50); echo $memcache_obj->get('var_key');
Memcache::get http://php.net/manual/ru/memcache.get.php
Memcache::get ( string $key [, int &$flags ] )
Memcache::get() возвращает ранее сохраненный элемент с ключем key если он в данный момент существует на сервере.
- key - Ключ или массив ключей для чтения.
- flags - Если задан, в него будет прочитано значение флагов. Это те же флаги, что и переданные, например в Memcache::set().
Остальные методы и базовое использование тут.