> For the complete documentation index, see [llms.txt](https://liuzhenglaichn.gitbook.io/system-design/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://liuzhenglaichn.gitbook.io/system-design/basics/cache.md).

# Cache

Increase the performance of **read** operations.

Application server cache: local cache. Example: map, leveldb. High performance but hard to scale. Violates stateless server principle.

CDN: static content cache, media/binarries

## Independent cache system

* **Redis**: complex data structure. Built-in high availability
* **Memcache**: simple key-value, high concurrency

## Cache writing policy

write-through: write to cache and db.

write-around: discard cache result, write db

write-back: only write cache, don't write to DB. not consistent.

If the cache content is easy to calculate, use write-through, otherwise, write-around.

Cache eviction policies: LRU, LFU, FIFO.

## What to Cache

TODO

## Cache Eviction Strategy

TODO
