Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Memcache по полочкам

Тема в разделе "Вопросы- ответы", создана пользователем iBrm1269, 14 фев 2016.

14.02.16 в 13:12
14.02.16 в 13:12
0
798
3
  1. TopicStarter Overlay
    iBrm1269

    iBrm1269 Посетитель

    Регистрация:
    10 фев 2016
    Сообщения:
    60
    Лучших ответов:
    0
    Рейтинги:
    +20 / 0 / -0
    Итак. Давайте разберемся "Что/Зачем/Почему"
    Буду нагло гуглить и вставлять основную мысль сюда. Так-что помидорами не закидывать.

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

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

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

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

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

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


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

    3. Как работает кэш?
    Ну представим, что у вас на сайте есть некий контент и его в базе больше 1500 статей.
    Если каждый раз при заходе в статью будет делаться запрос в базу, то при 100 одновременных посетителей база ляжет и скажет, что превышен лимит одновременных запросов.
    Дабы этого избежать -придумали кэш. Он берет контент и записывает в определенный файл на жестком диске. Каждая статья может быть в отдельном файле. Но может так получиться, что все статьи погрузятся в один файл(да-да некоторые CMS так делают).
    Отклонились. Продолжим. Так как контент находится в файле(отклик которого быстрее, чем отклик от запроса в БД), то запрос к БД уже не нужен. Тем самым сокращаем нагрузку и не создаем лишних соединений. Но так как мы говорим о memcache, то скажу вам так. Все работает идентично, если не углубляться в его API, но пишет он данные в оперативную память и каждый контент будет записан под своим идентификатором. Проще говоря:
    Файловы кэш - HDD
    memcache - SSD
    без кэша - 3.5А :D
    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:port
    P.S. conn - host/ip memcache сервера
    9. В самом низу нажимаем сохранить и идем на главную страницу админки(вашсайт.ру/admin.php?mod=main)
    10. Если в самом низу страницы спустя 2 минуты у вас не появилось сообщение, что не удалось подключится к memcache сервер, то все в порядке. Если появилось, то возращаемся к пункту "1" и все по новой :)

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

    ДЛЯ ТОГО, ЧТОБЫ УЗНАТЬ ВАШ ПОДДЕРЖИВАЕТ ЛИ ВАШ ХОСТ MEMCACHE - ПИШИТЕ В ТЕХПОДДЕРЖКУ, А НЕ СЮДА!!!
     
    • Нравится Нравится x 3
Яндекс.Метрика