Установка memcached под Windows 7
Memcached разработан для кэширования данных, генерация которых требует большого количества ресурсов. Такого рода данные могут содержать что угодно, начиная с результатов запроса к базе данных и заканчивая тяжеловесным куском шаблона.
Для начала скачиваем сам сервер memecached. Распаковываем архив memcached-1.2.6-win32-bin.zip, кладем файл memcached.exe в директорию C:/Program Files/memcached/. Устанавливаем как сервис (cmd запускаем от имени администратора):
cd C:/Program Files/memcached memcached.exe -d install
Краткую справку по memcached можно получить с помощью ключа -help:
memcached -help
Результат:
C:\Program Files\memcached>memcached.exe -help memcached 1.2.6 -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number to listen on (default: 0, off) -s <file> unix socket path to listen on (disables network support) -a <mask> access mask for unix socket, in octal (default 0700) -l <ip_addr> interface to listen on, default is INDRR_ANY -d start tell memcached to start -d restart tell running memcached to do a graceful restart -d stop|shutdown tell running memcached to shutdown -d install install memcached service -d uninstall uninstall memcached service -r maximize core file limit -u <username> assume identity of <username> (only when run as root) -m <num> max memory to use for items in megabytes, default is 64 -M return error on memory exhausted (rather than removing i -c <num> max simultaneous connections, default is 1024 -k lock down all paged memory. Note that there is a limit on how much memory you may lock. Trying to allocate more than that would fail, so be sure you set the limit correctly for the user you started the daemon with (not for -u <username> user; under sh this is done with 'ulimit -S -l NUM_KB'). -v verbose (print errors/warnings while in event loop) -vv very verbose (also print client commands/reponses) -h print this help and exit -i print memcached and libevent license -b run a managed instanced (mnemonic: buckets) -P <file> save PID in <file>, only used with -d option -f <factor> chunk size growth factor, default 1.25 -n <bytes> minimum space allocated for key+value+flags, default 48
Если при установке появляется ошибка «отсутствует MSVCR71.dll», то можно прочесть статью, где описывается способ борьбы с ней. Если коротко — надо скачать две dll бибилиотеки и скопировать их в папку C:/Windows/System32.
Запускаем сервер: Панель управления->Администрирование->Службы. Выбираем memcached Server, кликаем «Запустить службу». Также можно поставить тип запуска «Авто», чтобы сервер автоматически стартовал при загрузке системы.
Теперь нам нужен клиент для работы с сервером. Здесь есть выбор: memcache и memcached. Под Windows мне удалось найти только расширение php_memcache.dll (для версии PHP 5.3), которое можно скачать здесь. Распаковываем php_memcache-2.2.6-5.3-vc9-x86.zip, кладем файл php_memcache.dll в директорию с расширениями PHP. У меня это C:/Program Files/php/ext. В php.ini прописываем:
extension = php_memcache.dll
Теперь остается создать скрипт с функцией phpinfo(). Запускаем этот скрипт и ищем на странице секцию Memcache. Если секция найдена, то memcache установлен и готов к работе:
Проверяем:
<?php header( 'Content-Type: text/html; charset=windows-1251' ); // Создаём новый объект $memcache = new Memcache(); // Соединяемся с нашим сервером Memcached $memcache->connect('localhost', 11211) or die ('Не могу подключиться'); $version = $memcache->getVersion(); echo 'Версия сервера: '.$version; // Закрываем соединение с сервером Memcached $memcache->close(); ?>
Пример использования:
<?php header( 'Content-Type: text/html; charset=windows-1251' ); // Создаём новый объект $memcache = new Memcache(); // Соединяемся с нашим сервером $memcache->connect('localhost', 11211) or die ('Не могу подключиться'); // Пытаемся получить объект с ключом current_time $time = @$memcache->get('current_time'); if ( empty($time) ) { // Если в кэше нет объекта с ключом current_time, создадим его // Объект current_time будет храниться 5 секунд и не будет сжат $time = date('H:i:s'); $memcache->set('current_time', $time, false, 5); } echo 'Текущее время: '.$time; // Закрываем соединение с сервером $memcache->close(); ?>
Скачать сервер memcached и расширение php_memcache.dll можно здесь.
Дополнительная информация:
- Материал из Википедии: Memcached
- Официальный сайт Memcached
- memcache vs memcached — сравниваем клиенты
- Документация memcache
- Документация memcached
Поиск: Memcached • PHP • Web-разработка • Windows • Установка • Настройка