Зачем нужен сервер Memcached в PHP
Здравствуйте! Сегодня я расскажу Вам немного о масштабировании web-приложений, где затрону вопросы, касающиеся технологии NoSQL, а также одного из ее воплощений в PHP - модуль Memcached.
Масштабирование- это одна из ключевых характеристик любого грамотно спроектированного приложения. Хорошо масштабируемое приложение может справиться с возрастающей нагрузкой без внесения изменений в его исходный код. Существую два вида масштабирования:
- вертикальное
- горизонтальное
В первом случае вместо более слабого компьютера ставится более мощный, а во втором случае, просто приобретается ПК со схожими характеристиками и добавляется к уже имеющимся. Каждый из этих подходов имеет как свои плюсы, так и минусы. Но учитывая тот факт, что подавляющее большинство web-сайтов работают на виртуальном хостинге, то вопрос аппаратного масштабирования нас сейчас не интересует.
При разработке сайтов на стороне сервера, как правило, используется стек технологий: Apache, Nginx - PHP - MySQL. И для большинства задач этих технологий хватает вполне. Однако, так как многие сайты создаются в целях получения дохода, то их производительность становится важным фактором. И поэтому с ростом посещаемости, рано или поздно, перед владельцем сайта возникает необходимость увеличения лимита используемых ресурсов сервера, говоря проще, ресурсов, предоставляемых ему хостером прекращает хватать.
В этом случае есть несколько стратегий:
- провести рефакторинг и определить причину замедления сайта;
- купить дополнительные ресурсы хостинга;
- оптимизировать потребление ресурсов сайтом c помощью плагинов (если сайт на CMS);
- начать использовать PHP модули, такие как Memcached
Очень часто, основной причиной замедления сайта являются операции чтения/записи, осуществляемые с файловой системой и базой данных, особенно при большом количестве запросов. Такие базы данных как MySQL, PostgreSQL особенно показательны в этом отношении.
Поэтому либо вместе с системами управления баз данных, либо вместо них применяют NoSQL-решения. Для своих операций, последние не используют жесткий диск, а хранят данные (в виде документов или пар "ключ/значение" ) полностью в памяти. Это обеспечивает производительность на порядок больше чем у решений на базе реляционных баз данных.
Сегодня в мире используются множество разнообразных NoSQL-решений:
- MongoDB;
- Redis;
- HBase;
- Riak;
- CouchDB.
Однако одним из самых первых решений служит memcached-сервер, который хранит данные в виде пар "ключ/значение". Для работы с memcached существуют два расширения - Memcache и Memcahed. Memcached появился позднее и в отличие от Memcache предоставляет интерфейс для всех возможностей сервера memcached. В следующих статьях мы рассмотрим его подробнее, а на этом все. Спасибо за внимание.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.