https://www.arunangshudas.com/blog/caching-strategies-for-high-performance/