[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как лучше сохранять кеш?
Страницы: 1, 2, 3
gam0ra
Как лучше хранить кеш в файле на сайте при помощи unserialize или jsonencode или другой способ?
И в каком формате лучше сохранять фаил?
И проверять целостность кеша при помощи байтов или битов нормально?
TMake
а почему бы не использовать redis?
paul85
gam0ra, уже настолько нагруженный проект? =)
Arh
gam0ra
Смотря что хранить.
Если статические страницы, допустим (контакты, информация о сайте, и тд) тогда есть смысл хранить сгенерированный html целиком.
Если какие нибудь конфиги из базы, тогда unserialize.
А что то другое может вообще лучше в оперативке кэшировать.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
paul85
Кэшированием лучше заняться сразу. Смысл постоянно генерировать страницу, если там всегда одни и те же данные? Неважно нагружен проект или нет.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
paul85
Цитата (Arh @ 23.03.2015 - 22:56)
Кэшированием лучше заняться сразу. Смысл постоянно генерировать страницу, если там всегда одни и те же данные?


Arh, я считаю нет никакого смысла усложнять проект механизмом кэширования. Не уверен, что подсистема обслуживания кэша будет давать хоть какой-то прирост в производительности. На слабонагруженных проектах, естественно.

А тем более кэшировать страницу целиком... Еще данные, дёрнутые сложными запросами из СуБД... А какой смысл экономить на конструкциях, участвующих в отображении? Условия и циклы на 100-200 итераций... Да это копеечные вещи, потребление ресурсов -> 0.

Короче я категорически не согласен с вашим утверждением. =)
Invis1ble
кэширование на малых нагрузках может не только не ускорить загрузку, но и... ВНЕЗАПНО! замедлить её

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

sergeiss
Цитата (Invis1ble @ 24.03.2015 - 00:14)
кэширование на малых нагрузках может не только не ускорить загрузку, но и... ВНЕЗАПНО! замедлить её

Но зато ТСу можно будет поупражняться в кэшировании, чтобы потом уже ЗНАТЬ, как оно работает. Я думаю, что даже если он и увеличит нагрузку на сервер, то все равно он небольшая будет.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
paul85
Есть ли смысл ТСу увлекаться кэшированием? Может быть стоит прокачать скилл в разработке архитектуры... Тогда и кэширование долгое время не понадобится. wink.gif
stump
Что если использовать memcache?

Цитата
Модуль Memcache предоставляет удобный процедурный и объектно-ориентированный интерфейс к memcached, высокоэффективному кеширующему демону, который был специально разработан для снижения нагрузки на базу данных в динамических веб приложениях.


_____________
Трус не играет в хокей
johniek_comp
зачем? nginx может столько всего, думаю попробуй с начала с него

_____________
user posted image
Arh
paul85
Цитата
А тем более кэшировать страницу целиком

Да тут дело даже не в скорости, дело в логике.
Просто какой смысл каждый раз генерировать страницу, если там статические данные?
Например карта сайта, которая меняется допустим только при добавлении/удалении/редактировании категорий.
Тут либо каждый раз делать запрос в базу для выборки всех категорий из разных модулей и каждый раз циклом строить дерево в шаблоне.
Либо 1 раз построить, а потом отдавать уже сгенерированную страницу и уже не беспокоится как часто на неё заходят.

Да и механизм не сложный.

#грубо говоря
if(есть кэш) {
echo кэш;
} else {
echo $model->create_cache();
}


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Invis1ble
карту сайта на лету по-моему и так никто не генерирует

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

paul85
Цитата (Invis1ble @ 24.03.2015 - 20:24)
карту сайта на лету по-моему и так никто не генерирует

Ну конечно! Еще как генерируют. biggrin.gif Например вот:
http://gt-shop.ru/sitemap.xml
Открывайте любую из списка...

К слову сказать автор этого сайта - большой критикан. Например мой код, по его мнению, - УГ. Жаль что он не тусит на это форуме. А может быть и тусит - хрен его знает! Тогда привет тебе, Д. wink.gif

Цитата (Arh @ 24.03.2015 - 15:10)
Либо 1 раз построить, а потом отдавать уже сгенерированную страницу и уже не беспокоится как часто на неё заходят.

Да я итак не беспокоюсь. =) Просто глубоко убежден в том что:
1. Кэшировать нужно не страницы, а данные.
2. Имеет смысл только и только на ресурсоёмких операциях.

Что касается sitemap, ну конечно же его лучше перевести в статику. Хотя карта карте рознь. Например, если это крохотный сайтик-визитка, у которого 20-30 страничек, то гораздо проще генерировать каждый раз заново. Тем более этот файл дергают только поисковики пару раз в неделю. Даже больше скажу: у меня этого файла вообще нет как такового. Даже не сохраняю, сразу из PHP летит.

А вот, например, в случае приведенном мной выше - ну тут, естественно, без вариантов. Нужно генерировать и складывать на диск. А то этого чувака задэдосить элементарно. Даже как-то неприлично этим заниматься... Все-равно что кошке пинка дать. wink.gif

Arh, вы ведь фреймворки популярные используете, если не ошибаюсь?

Arh
Invis1ble
Цитата
карту сайта на лету по-моему и так никто не генерирует

Я про то и говорю, что кэш и не нагруженных проектах иногда нужен.

paul85
Цитата
Например, если это крохотный сайтик-визитка, у которого 20-30 страничек, то гораздо проще генерировать каждый раз заново.

Чем проще то? Проще 1 раз сгенирировать, чем каждый раз дёргать данные и строить дерево.
И 20-30 страничек проще 1 раз сгенерировать.
Вот кэшировать данные для страниц смысла нет, что из базы доставать, что из кэша. А саму страницу почему бы и незакэшировать?
Я имею ввиду не всю страницу от <html> до <html>, а только тот участок (модуль), который выводит страницы (публикации, материалы).


paul85
Цитата
Arh, вы ведь фреймворки популярные используете, если не ошибаюсь?

Не использую, а что?

ИМХО, кэширование не тормозит малонагруженные проекты.
Да и как так, делать сначала без кэша, а потом когда проект станет популярным (мы ведь для этого и программируем, что бы люди пользовались), переписывать его чтоб кэш встроить грамотно, ну или костылять.

Допустим вообразим себе малонагруженный сайт, который работает без кэша, у которого есть модуль "меню" - ссылки добавляются через админку.
Страница генерируется за 1 секунду, потому что модуль "меню" делает запрос в базу, потом циклом строит вложенное меню.
Зашел на сайт 1 человек, потратил 1 секунду процессорного времени.
Ну стал сайт популярным, ну зашло туда 10.000 человек, ну потратили они 10.000 секунд времени.
Но для каждого человека всё равно 1 секунда.
И какая разница, нагружен сайт или нет?

А теперь представим тот же сайт, с тем же модулем, только модуль не генерирует меню, а берёт его из уже сгенерированного файла. И страница открывается 0.5 сек.
Что 1 человек зайдёт, для него сайт откроется за пол секунды, что 10.000 зайдёт, для каждого будет 0.5

Или я что то не понимаю?


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.