• Like
Кэширование в Веб разработке на серверном и клиентском уровнях
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Кэширование в Веб разработке на серверном и клиентском уровнях

  • 74 views
Published

Алексей Ярменко. Нагруженный форк

Алексей Ярменко. Нагруженный форк

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
74
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • {}

Transcript

  • 1. Кэширование в Веб разработке на серверном и клиентском уровнях (на примере связки MySQL + PHP) Докладчик: ЯРЕМЕНКО Алексей Сергеевич
  • 2. Зачем? ▪ Уменьшение времени отклика приложения (сайта) ▪ Уменьшение нагрузки на сервер ▪ Уменьшение генерируемого трафика ▪ Увеличение радости нашего пользователя
  • 3. Технология «клиент-сервер» Запрос выполняется по протоколу HTTP
  • 4. Возможные уровни кеширования Серверный Клиентский ▪ Запросы к БД ▪ Исполняемый код ▪ Статичные данные (HTML, JS, CSS, IMG) ▪ Результаты выполнения AJAX запросов ▪ Кэширование тяжелых данных на жестком диске ▪ Кэширование частых небольших данных в оперативной памяти
  • 5. Кэширование запросов к БД Почему иногда не срабатывает кэширование ▪ В MySQL запросы должны быть написаны идентично (учитывется даже регистр) ▪ При обновлении таблицы (INSERT, UPDATE) кэш сбрасывается Решение: Вынести часто изменяемые таблицы отдельно ▪ Не кэшируются запросы содержащие функции времени, даты, а так же некоторые другие Решение: заменить функции на константы WHERE `date` > NOW()  WHERE `date` > '2012-05-06‘ ▪ Помните про лимит памяти и фрагментацию
  • 6. Кэширование результатов работы на жестком диске ▪ Можно кэшировать HTML блоки часто вставляемые в код страницы или целиком страницы ▪ Готовые инструменты (например EZ cache) позволяют автоматически проверять наличие кэша, его свежесть и генерировать пути хранения файлов ▪ Правильно настроенный веб сервер может отдавать готовые HTML файлы очень быстро
  • 7. Кэширование данных в оперативной памяти (Memcache, APC) ▪ Можно кэшировать как результаты запросов к БД, результат сложных вычислений, а так же часто используемые HTML блоки небольших размеров ▪ Memcache в основном используется для организации единого кэша между серверами ▪ APC помимо данных кэширует PHP код
  • 8. Кэширование на стороне клиента ▪ Заголовок Expires говорит браузеру брать результат запроса из кэша до указанной даты Expires: Sun, 24 Jan 2013 20:59:20 GMT ▪ Результаты частых AJAX запросов можно сохранить в обычной переменной ▪ Склеивание JS, CSS и изображений в один файл чтобы минимизировать количество запросов к серверу
  • 9. Способы «оживления» страницы • В зависимости от Cookie при помощи JS показывать различные блоки (авторизован / не авторизован) • <script src="/comments.php?songid=12345"></script> • SSI: <!--#if expr="СТРАНИЦА ПЕСНИ" --> один вид рекламы <!--#elif expr="СТРАНИЦА ГРУППЫ" --> второй вид рекламы <!--#endif -->
  • 10. Спасибо за внимание! С удовольствием отвечу на Ваши вопросы!