Memcached – это, коротко говоря, распределенная система кеширования объектов в памяти. Многие известные веб-сайты, такие facebook, slashdot и livejournal, используют memcached для того чтобы справляться с высокой нагрузкой. Использование memcached позволяет кешировать или только результаты выполнения самых тяжелых запросов к базе данных или даже сохранять в кеше текст сгенерированной веб-страницы полностью и за счет этого можно многократно повышать производительность веб-приложения.
Интерфейсы к memcached существуют для большинства самых распространенных языков программирования к которым конечно относятся и такие популярные в web языки как PHP, C, Java, Python, Ruby, Perl. В этой статье речь пойдет только об установке и мониторинге работы сервера memcached, но о том как происходит работа с memcached из PHP я обязательно остановлюсь подробнее в одном из следующих постов.
Удобство и простота установки программ является одним из главных преимуществ использования дистрибутивов Debian и Ubuntu. Вот и в этом случае всё что нам потребуется сделать для установки memcached – запустить с правами root такую команду:
aptitude install memcached php5-memcache
если вы также будете использовать для работы с memcached языки C, Perl или Python, можете сразу доустановить необходимые пакеты:
aptitude install libmemcache0 libcache-memcached-perl python-memcache
После установки пакета вы также получите готовый файл конфигурации программы в файле /etc/memcached.conf. Для первых экспериментов с программой этих настроек вполне достаточно – можно ничего не менять. Сервер запустится с правами nobody и будет принимать соединения только от локальных процессов через tcp-порт 11211 по адресу 127.0.0.1. Ограничение памяти для memcached будет установлено в размере 64MB. В дальнейшем вы сможете более точно настроить эти параметры в соответствии с вашими требованиями.
Перед тем как настраивать остальной софт для работы с memcached желательно сначала убедиться что он нормально работает. Самый простой способ проверки – установить соедининение при помощи программы telnet:
telnet 127.0.0.1 11211Для сохранения объекта в кеше используется такая команда:
set <ключ> <флаг> <срок годности> <длина в байтах>
Для извлечения объекта из кеша команда такая:
get ключ_с_которым_сохранялся_объект
При правильно настроенном и работающем сервере у вас может получиться примерно такое содержание telnet-сессии:
set key1 1 0 21 this is a test string STORED get key1 VALUE key1 1 21 this is a test string END
В этом примере строка “this is a test string” была сохранена в кеше с ключом key1 и была успешно получена назад по этому же ключу.
Наблюдение за работой сервера memcached можно производить из специальных программ на любом из поддеживаемых языков:
import memcache; print memcache.Client(['127.0.0.1:11211'], debug=0).get_stats()
где 127.0.0.1 – ip-адрес сервера memcached, a 11211 – порт по умолчанию.
$mymemcache = new Memcache; $mymemcache->addServer('memcache_host', 11211); $server_stats = $mymemcache->getStats();
Содержимое $server_stats после выполнения этих строк является ассоциативным массивом, который содержит всю доступную для скрипта информацию о работе сервера. Описание ключей массива приводится ниже:
Если вам понравился этот сайт, вы можете подписаться на rss
Отзывы: Один комментарий
Сергей
06 Июнь 2010 в 0:14
” rel=”nofollow”> Спасибо,…
Хотя новость уже читал…
Ваш отзыв