Рейтинг: 0.3403  
На голосовании
Предложил Бугай Максим 04.10.2017 04:22:17

Несколько типов кеша на одном сайте

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

Предложение:
Сделать настройки кеширования в settings.php в следующем виде:
...
'cache' => <настройки>,
'cache_extra' => array(
  'key1' => <настройки>,
  'key2' => <настройки>,
)
...
В конструкторе Bitrix\Main\Data\Cache, и соответственно  старых  CPhpCache и CPageCache, передавать в качестве параметра ключ для секции настроек, которые в нём используются.

По умолчанию для всех системных функций будет использоваться кеш по умолчанию.
Для своих модулей, там где это надо, свои настройки с фолбеком на настройки по умолчанию.
Рейтинг: 4.4443  
На голосовании
Предложил Гуржиев Алексей 16.02.2016 17:12:38

"Управляемый кеш" не должен удалять валидные файлы кеша

Проблема

Кажется, я - единственный кто не знал как работает "управляемый кеш".
Давайте проверим знаете ли вы! А он работает так:
Если "управляемый кеш" включен (а это рекомендуется и он включен по умолчанию!), то при изменении/добавлении/удалении одного элемента инфоблока удаляются ВСЕ файлы кеша ВСЕХ элементов этого инфоблока. Не знали?
Техподдержка подтверждает - это действительно так и это не баг! И я единственный, кто чувствует дискомфорт от этого? Поделитесь в комментариях своим мнением!

Представьте, у вас есть магазин с 100 000 элементами и вы каждый день добавляете по 1 элементу (товару). Следовательно, каждый день все файлы кеша всех 100 000 товаров маркируются на удаление (конечно, если они успели создаться за день). Ок, а если эти элементы создают сами пользователи и создают круглосуточно - получается в битриксе кеша нет т.к. при каждом удалении/изменении/добавлении 1 элемента трётся весь кеш всех элементов инфоблока.

Я обнаружил это свойство "управляемого кеша" когда нашёл большое количество файлов кеша в очереди на удаление (файлы с именем ".~" ) в папках
bitrix/cache/s1/bitrix/news.detail
bitrix/cache/s1/bitrix/news.list
Агенты на кроне (раз в минуту) не справлялись с удалением десятков тысяч файлов в очереди - проверьте может у вас тоже это заметно. Представляете какая нагрузка на файловую систему!?

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

Как исправить

Мне кажется, "управляемый кеш" должен работать так:
При добавлении элемента должен создавать файл кеша (точнее при первом его вызове из компонента).
При изменении элемента должен маркироваться на удаление файл кеша ИЗМЕНЯЕМОГО элемента и далее при первом вызове из компонента будет создаваться новый файл кеша этого элемента.
При удалении элемента должен маркироваться на удаление только файл кеша УДАЛЯЕМОГО элемента.

Не должны ни в коем случае удаляться все файлы кеша всех элементов инфоблока. Я не могу представить себе ситуацию когда надо удалять ВСЕ валидные файлы кеша при добавлении/изменении/удалении ОДНОГО единственного элемента!