Адаптер кешу Filesystem
Дата оновлення перекладу 2024-04-30
Адаптер кешу Filesystem
Цей адаптер надає покращену продуктивність додатку для тих, хто не може встановити
інструменти на кшталт APCu або
Redis у своєму середовищі. Він
зберігає строк закінчення дії обʼєкта кеша та зміст у вигляді звичайних файлів у
колекції каталогів у локально змонтованій файловій системі.
Tip
Продуктивність цього адаптера може бути значно збільшена з використанням тимчасової файлової системи в оперативні памʼяті, на кшатлт tmpfs на Linux, або одного з багатьох інших доступних рішень RAM-диску.
FilesystemAdapter можна опціонально надати простір імен, час життя кеша за замовчуванням та шлях кореню кеша в якості параметрів конструктора:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
$cache = new FilesystemAdapter(
// рядок, використоовуваний в якості підкатаолгу кореневого каталогу кеша,
// де зберігатимуться обʼєкти кеша
$namespace = '',
// час життя за замовчуванням (в секундах) для обʼєктів кеша, які не визначають
// власний час життя, зі значенням 0, що викликає безстрочне зберігання обʼєктів
// (тобто, поки не будуть видалені файли)
$defaultLifetime = 0,
// головний каталог кеша (додатку потрібні права читання та редагування в ньому)
// якщо він не вказаний, то створюється каталог всередині тимчасового каталогу системи
$directory = null
);
Caution
Перезавантаження IO файлової системи часто робить цей адаптер одним з найповільниших варіантів. Якщо пропускна здатніссть є найважливішою, то рекомендується використовувати адаптери оперативної памʼяті (Apcu, Memcached та Redis) або адаптери DB (Doctrine DBAL, PDO).
Note
Цей адаптер реалізує PruneableInterface,
що дозволяє ручне відсікання прострочених обʼєктів кешу ,
шляхом виклику його методу prune()
.
Робота з тегами
Для того, щоб використовувати інвалідацію, засновану на тегах, ви можете обгорнути ваш адаптер у TagAwareAdapter, але часто цікавіше використовувати відповідний FilesystemTagAwareAdapter. Так як логіка інвалідації тегів реалізується за допомогою посилань у файловій системі, цей адаптер пропнує більш читану продуктивність при викокристанні інвалідації, заснованої на тегах:
1 2 3
use Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter;
$cache = new FilesystemTagAwareAdapter();