Редактор темы

Реклама
Реклама

Memcache по полочкам

iBrm1269

Посетитель
Регистрация
10 Фев 2016
Сообщения
60
Рейтинг реакций
20
Баллы
8
1/3
Автор темы
Итак. Давайте разберемся "Что/Зачем/Почему"
Буду нагло гуглить и вставлять основную мысль сюда. Так-что помидорами не закидывать.

1. Что такое memcache?
memcached
— программное обеспечение, реализующее сервис кэширования данных в оперативной памяти на основе хеш-таблицы.

Memcache разработан для кэширования данных, генерация которых требует большого количества ресурсов. Такого рода данные могут содержать что угодно, начиная с результатов запроса к базе данных и заканчивая тяжеловесным куском шаблона. Memcached не входит в базовый набор модулей, поставляемых с PHP, однако он доступен в репозитории pecl.

2.Почему стоит его использовать?

Существует две основные причины, по которым используется веб-кэш:

1. Уменьшение времени ожидания — так как данные по запросу берутся из кэша (который располагается “ближе” к клиенту), требуется меньше времени для получения и отображения контента на стороне клиента. Это делает Веб более отзывчивым (прим. переводчика — “отзывчивым” в контексте быстроты реакции на запрос, а не эмоционально).

2. Снижение сетевого трафика — повторное использование контента снижает объем данных, передаваемых клиенту. Это, в свою очередь, экономит деньги, если клиент платит за трафик, и сохраняет низкими и более гибкими требования к пропускной способности канала.


Ну тут далеко ходить не нужно, да и расписывать многое лень. Просто скажу как есть.
memcache работает гораздо быстрее файлового кэша и уж темболее быстрее, чем вообще быть без кэширования.
Залез на всеми любимый хабр и нашел статью, в которой был этот график:
362bea95c67d5ec624d012ec57789a5a.png

Число над столбиком - это кол-во запросов, при выполнении скрипт, который на пустом изображении 800х600 рисовал 10000 точек.
Первый столбец - сколько запросов можно выполнить с memcache
Второй - без кэширования.
Третьего нет,который показывал бы нам файловый кэш, но примерно будет 180-230 запросов.

3. Как работает кэш?
Ну представим, что у вас на сайте есть некий контент и его в базе больше 1500 статей.
Если каждый раз при заходе в статью будет делаться запрос в базу, то при 100 одновременных посетителей база ляжет и скажет, что превышен лимит одновременных запросов.
Дабы этого избежать -придумали кэш. Он берет контент и записывает в определенный файл на жестком диске. Каждая статья может быть в отдельном файле. Но может так получиться, что все статьи погрузятся в один файл(да-да некоторые CMS так делают).
Отклонились. Продолжим. Так как контент находится в файле(отклик которого быстрее, чем отклик от запроса в БД), то запрос к БД уже не нужен. Тем самым сокращаем нагрузку и не создаем лишних соединений. Но так как мы говорим о memcache, то скажу вам так. Все работает идентично, если не углубляться в его API, но пишет он данные в оперативную память и каждый контент будет записан под своим идентификатором. Проще говоря:
Файловы кэш - HDD
memcache - SSD
без кэша - 3.5А 😀
P.S. Если кэша у вас на 300мб, то вы скушаете 300мб оперативной памяти. Помните это.

4. Каким проектам он нужен?
Вот тут в интернете мнения расходятся и у меня с моими знакомыми собственно тоже. Тут как говорится "Кто на что быстрее подсел"
Кто-то сразу его использовал и разницы не видит
Кто-то использовал его с определенной популярности проекта.
Но по моему мнению он не нужен проектам "новечкам" до 400 юников в сутки.
Почему? Да потому-что у них файлового кэша до этого момента скорее всего раз-два и обчелся(если мы говорим про постоянно обновляющийся кино-сайт)

5. Как его включить в DLE?
1. Вы должны быть уверены, что php memcache поддерживается вашим хостером
2. Вы должны быть уверены, что ваш хостер предоставляет так скажем "хостинг" memcache
3. Вы должны знать ip/host memcache и его port
Уверены и знаете все, что в пунктах выше? Идем дальше:
4.Заходим в "вашсайт.ру/admin.php?mod=options&action=syscon"
5. Далее идем в раздел с иконкой графиков "Оптимизация запросов к базе данных"
6. Включаем пункт "Включить кеширование на сайте"
7. В поле "Тип кеширования на сайте" выбираем Memcache
8. В поле "Данные для подключения к Memcache серверу" указывает ваш conn😛ort
P.S. conn - host/ip memcache сервера
9. В самом низу нажимаем сохранить и идем на главную страницу админки(вашсайт.ру/admin.php?mod=main)
10. Если в самом низу страницы спустя 2 минуты у вас не появилось сообщение, что не удалось подключится к memcache сервер, то все в порядке. Если появилось, то возращаемся к пункту "1" и все по новой 🙂

6. Как его включить в "Название CMS"?
Ответ:
Тут описывается только DLE, так-что не флудите в топик. Лучше напишите мне в личные сообщения

ДЛЯ ТОГО, ЧТОБЫ УЗНАТЬ ВАШ ПОДДЕРЖИВАЕТ ЛИ ВАШ ХОСТ MEMCACHE - ПИШИТЕ В ТЕХПОДДЕРЖКУ, А НЕ СЮДА!!!
 

Похожие темы Последние темы Популярные темы

Назад
Сверху