====== Механизмы кэширования ====== Платформа Astra.CMS содержит механизмы кэширования позволяющие значительно снизить нагрузки на сервер. Кэширование и соблюдение актуальности кэша работает полностью автоматически. Система реагирует на все изменения, поэтому закэшированные данные всегда актуальные. ===== Режимы ===== Включить кэширование может только администратор с полными правами на странице панели управления "Система" -> "Настройки". Поддерживаются два режима: - Кэширование в файлах. - Кэширование в memcache. Намного более эффективный второй режим, но для его включения должен быть установлен сервер memcache, а так же библиотека php_memcache. ===== Уровни ===== Имеется несколько уровней кэширования, некоторые из них работают всегда, даже если опция кэширования отключена. ==== База данных ==== Кэшируются все запросы к базе данных MySQL, таким образом, что если кэш актуальный (не добавлялись новые материалы на сайт и т.д.), то подключения к БД вообще не происходит. Это позволяет решить самое узкое место в производительности, а именно уменьшить/исключить обращения к БД. ==== Страницы ==== Модули поддерживающие кэширование, позволяют сохранять свое состояние для каждой из своих страниц. Это дает возможность обойти процесс формирования набора данных, а просто восстановить объект и сразу передать его шаблонизатору. ==== Блоки ==== Блоки как независимые составляющие страниц кэшируются отдельно. Механизм аналогичный страницам. ==== Функции ==== Часто вызываемые функции на этапе формирования данных (функции генерации ссылок. загрузки списков и т.д.), кэшируют свои результаты в момент выполнения. Этот механизм работает всегда. ==== Масштабирование картинок ==== Картинки, которые выводятся в шаблоне с помощью функции [[smarty:smarty6#image|image]] с применением масштабирования - тоже кэшируются и впоследствии непосредственно выводятся на странице. Этот механизм работает всегда.