Denvas.info - о работе, заработке и Интернет

О работе, заработке и Интернет.



Метки




Вы здесь: ГлавнаяДневникАрхив 2010Кэширование

Кэширование

Базы данных всем хороши, но как бы они не оптимизировались, файлы быстрее : - )
Современные CMS нехило подгружают систему. Взять хотя бы Битрикс. На многих хостингах для этой CMS предусмотрены специальные тарифы. Ясное дело с увеличенной производительностью.
Новый летник не настолько наворочен и неповоротлив, но кеширование пришлось вводить.
Приведу пример на основе этого дневника.
Главная страница состоит из 10 последних заметок. Заметки добавляются не чаще чем раз в сутки. Комментарии тоже не очень часто. Какой смысл при загрузке главной страницы каждый раз коннектиться к базе, делать выборку, формировать вывод? Это можно делать намного реже чем раз за запрос. Кстати, коннект к базе данных иногда занимает больше времени, чем выборка из базы.
Для таких случаев пришлось сделать кеширование страниц. Страница генерируется и сохраняется во временный файл на определенное время. Этот файл обновляется по истечению срока кеширования. В заголовке документа также отдается время кеширования документа и пока оно не истечет (или пользователь не произведет принудительное обновление), браузер даже не будет запрашивать этот документ, а будет выводить его из своего кеша.
Выигрыш в скорости генерации страниц достигает десятков раз. Кроме скорости экономится и трафик.
Есть конечно и недостатки.
На кешируемых страницах нельзя использовать персонализированную информацию. Нельзя написать пользователю "Ваш IP, Ваш браузер, текущее время", т.к. эти данные для каждого пользователя будут меняются.
Кроме полного кеширования страниц сейчас разрабатываю частичное кеширование выдачи данных модулей. Это не избавляет от коннекта к базе, но позволяет существенно сократить время на выборки и формирование выводимых данных. В этом виде кеширования возможен вывод персонализированной и временной информации.
Для чего все эти заморочки?
1. Для удобства пользователей, которым не придется ждать по нескольку минут пока откроется страница.
2. Для экономии денег на тарифах. Чем меньше потребляет ресурсов скрипт, тем более дешевый тариф можно выбрать.
3. Для экономии трафика. При правильном кешировании браузер будет реже запрашивать не измененные страницы.
Самым ярким примером применения кеширования служит rss канал. Информация в rss каналах для всех пользователей выдается одинаковая. Значит выдачу канала можно кешировать надолго. Некоторые агрегаторы новостей запрашивают каналы очень часто, а к вашему каналу может быть подключено сотни пользователей. Представим подписаны 100 человек, запрашивают каждые 10 минут. В сутки 14400 запросов. А сгенерировать этот канал можно всего одним коннектом к базе, выборкой данных и сохранением этих данных во временный файл. Файл можно обновлять по таймеру или после добавления новой записи в базу.
P.S. кеширование в этом дневнике еще не сделано. Он приводится как пример.
28 дек 2010г 09:34:57
Просмотров: 4568
Метки: letnick.com
18 янв 2011г 04:45:22, Денис
Если Вы не понимаете как работает, лучше помолчите, а не выставляйте себя идиотами.
17 янв 2011г 18:11:29, Sashon
4i4a,да,это не коммерческий проект,поэтому "все для людей" :)
31 дек 2010г 18:43:11, 4i4a
Это чё ж выходит: экономия трафика пользователей из своего кармана? :) Например, за счёт падения к-ва банеропоказов, например? :)

Ваш комментарий
Если Ваш комментарий не относится к заметке или имеет рекламный характер, то он будет удален.
Имя *
E-mail
Сообщение *
Введите цифры * Цифры ?

Для защиты от добавления роботами введите цифры (без букв)
 


Мои проекты

Видеоканал DenvasTV

Видеоканал letnickcom

Китайский планшет

Конструктор сайтов

Магазин скриптов

Рекламная сеть

Мульти партнерская программа

Реклама

Дешевые товары из Китая

Последнее сообщение: 2014-04-25 11:57:04
Генерация: 0.035557 сек.
© Denvas 2001-2013