Quantcast
Channel: Symfony Blog
Viewing all articles
Browse latest Browse all 3061

New in Symfony 3.2: Tagged Cache

$
0
0
Nicolas Grekas

Contributed by
Nicolas Grekas
in #19047.

In Symfony 3.1 we added a new Cache component that was a strict implementation of the PSR-6: Caching Interface standard. In Symfony 3.2 we decided to improve the cache with some features not defined by the standard.

The first new feature is the tag-based invalidation to create tagged caches. Imagine that your application is an e-commerce application that stores users' reviews in the cache. When saving those reviews, you can now associate tags to them:

1
2
3
4
5
6
7
8
9
useSymfony\Component\Cache\Adapter\FilesystemAdapter;$cache=newFilesystemAdapter();$review=$cache->getItem('reviews-'.$reviewId);$review->set('...');$review->tag(['reviews','products','product-'.$productId]);$cache->save($review);

The cached review is associated with three different tags that can be used to invalidate related items:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// the HTML structure of reviews has changed:// invalidate all reviews$cache->invalidateTags('reviews');// a special sale is enabled in the store:// invalidate anything related to products$cache->invalidateTags('products');// the data of the product #123 has changed:// invalidate anything related to that product$cache->invalidateTags('product-123');// a major store update is being deployed:// invalidate all the information related to products and reviews$cache->invalidateTags(['products','reviews']);// after invalidating any of the previous tags, the item is no longer// available in the cache:$cache->getItem('reviews-'.$reviewId)->isHit();// returns false

The Cache component now defines a TagAwareAdapterInterface to add tag-based invalidation to your own cache adapters and TaggedCacheItemInterface to allow tagging cache items. In addition, it includes a TagAwareRedisAdapter to enable tag-based invalidation when using Redis.


Be trained by Symfony experts - 2016-07-06 London - 2016-07-11 Paris - 2016-07-18 Paris

Viewing all articles
Browse latest Browse all 3061

Trending Articles