Тегированный кеш
Теги кеширования не поддерживаются при использовании драйверов кеширования file
, dynamodb
или database
. Более того, при использовании нескольких тегов с кешами, которые хранятся «на постоянной основе», то производительность будет лучше с драйвером, таким как memcached
, который автоматически очищает устаревшие записи.
Сохранение элементов тегированного кеша
Теги кеша позволяют помечать связанные элементы в кеше, а затем сбрасывать все кешированные значения, которым был назначен данный тег. Вы можете получить доступ к тегированному кешу, передав упорядоченный массив имен тегов. Например, давайте обратимся к тегированному кешу и поместим значение в кеш:
Cache::tags(['people', 'artists'])->put('John', $john, $seconds);
Cache::tags(['people', 'authors'])->put('Anne', $anne, $seconds);
Доступ к элементам тегированного кеша
Чтобы получить элемент тегированного кеша, передайте тот же упорядоченный список тегов методу tags
, а затем вызовите метод get
с ключом, который вы хотите получить:
$john = Cache::tags(['people', 'artists'])->get('John');
$anne = Cache::tags(['people', 'authors'])->get('Anne');
Удаление элементов тегированного кеша
Вы можете удалить все элементы, которым назначен тег или список тегов. Например, эта операция удалит все кеши, помеченные либо people
, либо authors
, либо обоими. Таким образом, и Anne
, и John
будут удалены из кеша:
Cache::tags(['people', 'authors'])->flush();
Напротив, эта операция удалит только кешированные значения, помеченные как authors
, поэтому будет удалена Anne
, но не John
:
Cache::tags('authors')->flush();