10 cache concepts you should know as a programmer:
(save these for later.)
-
1. client-side caching:
↳ browser cache: stores css, js, images to reduce load time
↳ service workers: enable offline access by caching response
2. server-side caching:
↳ page caching: cache the entire web page
↳ fragment caching: cache page components like sidebars, navigation bar
↳ object caching: cache expensive query results
3. database caching:
↳ query caching: cache db query results to reduce load
↳ row level caching: cache popular rows to avoid repeated fetches
4. application-level caching:
↳ data caching cache specific data points or entire datasets
↳ computational caching: cache expensive computation results to avoid recalculation
5. distributed caching:
↳ spreads cache across many servers for scalability
6. cdn:
↳ store static files near users using edge servers for low latency
7. cache replacement policies:
↳ LRU: removes the least recently accessed items first
↳ MRU: removes the most recently accessed items first
↳ LFU: removes items accessed least often
8. hierarchical caching:
↳ caching at many levels (L1, L2 caches) for speed and capacity
9. cache invalidation:
↳ TTL: set expiry time
↳ event-based: invalidate based on events or conditions
↳ manual: update cache using tools
10. caching patterns:
↳ write-through: data gets written to the cache and the backing store at once
↳ write-behind: data gets written to the cache and asynchronously to the backing store
↳ write-around: data gets written directly to the database, bypassing the cache
-
Caching improves the performance and scalability of your application.
So use it with care.
What else would you add?
⬳
👋 PS - Join 84K+ programmers and get the powerful system design template (it's free):
newsletter.systemdesign…
—-
♻ If you liked this note, restack & help others find it