1

Тема: Альтернативный кеш

Система альтернативного кеширования для Strawberry 1.1.1

Иногда стандартная система кеширования дает сбои, либо грузит сервер.
По этому, для снижения нагрузки предлагаю вариант альтернативного кеширования.

Всё достаточно просто. На сайте создаете временную папку, к примеру temp с правами 777, далее в нужных php файлах прописываете следующее:

<?
$url=$_SERVER['REQUEST_URI'];
$crc=md5($url);

$modif=time()-@filemtime ("temp/$crc");

if ($modif<7200)
{ 
include ("temp/$crc");
exit();
}

ob_start ();

 // код выше идет до подключения к движку!

include_once 'strawberry/head.php'; // ваш путь к клубничке и далее ваш код...

...Тут идет код... сайта!
А в самом низу под драг энд дропом...

$cache = ob_get_contents();
ob_end_clean ();
echo $cache;

$fp = @fopen ("temp/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);
?>

- в данном примере время кеширования 7200 секунд.
Скрипт позволяет закешировать страницу целиком и в течении 7200 секунд показывать её из кеша.

Единственно, блоки "только для администратора" при данном кешировании придется отключить.

Отредактировано UltraPixel (11 Apr 2010 21:24:47)

Strawberry 1.1.1

Re: Альтернативный кеш

Засирание папки обеспечено )
Особенно для многостраничных сайтов. Примерно данный метод используется и в моей сборке. (удивительное совпадение wink)

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

3

Re: Альтернативный кеш

Miksar, сорри, в твоей сборке реально этого не видел...
Метод использую давно и брал от сюда...

Strawberry 1.1.1

Re: Альтернативный кеш

ну я не сам написал, подсмотрел ))
Но принцип тот же. Но у меня это работает при использовании клубнички как CMS (но никто вам не запрещает использовать её как и старую клубнику). Воть...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Альтернативный кеш

А можно этот способ как-то приспособить, чтобы кешировать не страницу целиком, а только отдельные части с выводом новостей?
Типа:

<кеш 1>
<некешируемое содержимое>
<кеш 2>

Отредактировано Seva (27 Mar 2010 15:34:24)

Re: Альтернативный кеш

Указанный вами вариант уже встроен в клубнику...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

Re: Альтернативный кеш

Ясно.

Еще один глупый вопрос: стандартный клубничный кеш нужно отключать при подключении альтернативного? Или они могут работать одновременно?

Re: Альтернативный кеш

могут и одновременно, но будет засирака на вашем сервере ))
Кеш указанный выше (первый пост) - кэширует страницу целиком.
тогда зачем вам второй кэш?

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

9

Re: Альтернативный кеш

Скажу на практике о методе, нагрузка на хостинг уменьшилась раз в 7, но возникают проблемы с задержкой в появлении на сайте новых материалов, а также папку с кешем раз в месяц стоит почистить)) wink

А двойной кеш использовать не стоит т.к. нагрузка от этого явно не уменьшится...

Отредактировано UltraPixel (10 Apr 2010 02:12:55)

Strawberry 1.1.1

Re: Альтернативный кеш

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

Папка быстро засирается - это да smile.

Re: Альтернативный кеш

Вообще стандартный кэш призван снижать нагрузку (цитирую) раз в десять. однако у пользователей разные на этот счет мнения.
В вашем случае использовать альтернативный кэш можно только на страницах со статичным содержимым...

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

12

Re: Альтернативный кеш

Скрипт чистки папки с альтернативным кэшем:
Создаете какой-нить "destroy.mdu", пихаете в папку /inc/mod со следующим содержанием:

<? echoheader('question', t('Удаление временных файлов')); ?>

<?
  $dir = opendir ("../temp");
  while (( $file = readdir ($dir)))
  {
    if (( $file != ".") && ($file != ".."))
    {
      unlink ("../temp/$file");
    }
  }
  closedir ($dir);
?>

<h1>Временные файлы были удалены!</h1>

<? echofooter(); ?>

Вызывать, как: http://ВАШСАЙТ/АДМИНКА/?mod=destroy (ссылку можно куда-нибудь в меню, или на "главную" админки вывести).

Отредактировано UltraPixel (20 Dec 2010 03:05:27)

Strawberry 1.1.1

13

Re: Альтернативный кеш

чуток переделал систему кеширования так чтобы папка с кешем чистилась на автомате

<?
$url=$_SERVER['REQUEST_URI'];
$crc=md5($url);
$filet=@filemtime ("temp/$crc");

$modif=time()-@filemtime ("temp/$crc");

if ($modif<7200)
{ 
include ("temp/$crc");
exit();
}

if ( ($modif>7200) and ($filet>0) )
{

$dir='temp/';

$file_list = scandir($dir);
$ca=2;

while ( $ca < sizeof($file_list) )
{
unlink ($dir.$file_list[$ca]);
$ca++;
}
unset ($ca);
unset ($dir);
unset ($file_list);
}

ob_start ();

 // код выше идет до подключения к движку!

include_once 'strawberry/head.php'; // ваш путь к клубничке и далее ваш код...

...Тут идет код... сайта!
А в самом низу под драг энд дропом...

$cache = ob_get_contents();
ob_end_clean ();
echo $cache;

$fp = @fopen ("temp/$crc", "w");
@fwrite ($fp, $cache);
@fclose ($fp);
?>

Отредактировано sander-ua (07 Mar 2011 22:04:06)

Re: Альтернативный кеш

Сбрасывать переменные можно и так:

unset ($ca, $dir, $file_list);

Сейчас Ant-Soft скажет, что будет невыгодно каждый урл кешировать. Я с ним, пожалуй, соглашусь wink

Здесь молодость бродит крылато, и старость не клонит голов...
Демо площадка Strawberry 1.2 - заходим и тестируем!

15

Re: Альтернативный кеш

Miksar пишет:

Сейчас Ant-Soft скажет, что будет невыгодно каждый урл кешировать. Я с ним, пожалуй, соглашусь wink

На счет этого не спорю

Но на моем хостинге штатная система кеширования работает мягко говоря фигово, а без кеша так вообще pgt ужасный. Static от части решает проблему, но только от части. А с альтернативным кешем проблем нет.