How to choose caching based on invalidation strategy?
Caching helps to improve the performance of the application. But while picking caching as a solution, you need to know when and how to invalidate the cache.
Invalidating the cache by time
You can set the cache to expire by certain time. This is very common strategy.
Advantages
- It is very easy to implement. Most applications can get boost in performance by just adding this strategy.
Examples
- A product page in ecommerce store can be cached for 1 hour
- A blog post page can be cached for 30 days
- A user profile page can be cached for 1 hour
- A sports score page can be cached for 1 minute
But it has some drawbacks though,
- If the cache is set to expire in 1 hour, then the data will be stale for 1 hour.
- If the cache is set to expire in 1 minute, then the cache will be invalidated every minute. This will cause a lot of cache misses and the application will be slow.
Invalidating the cache by event
You can set the cache to expire when certain event happens. This will balance the performance and freshness of the data.
Examples
- A product page in ecommerce store can be cached until the product is updated
- A blog post page can be cached until the blog post is updated
When the event happens, you can trigger an event, process the event and invalidate the cache. This way, you can keep the cache fresh without any stale data issues.
Invalidating the cache by event and time
You can set the cache to expire when certain event happens or after certain time. This will balance the performance and freshness of the data.
Examples
- A product page in ecommerce store can be cached until the product is updated or for 1 hour
- A score page can be cached until the score is updated or for 1 minute
Hope this article helps you to choose your cache invalidation strategy. If you have any questions, please ask me on twitter @learnwithparam š.