https://levelup.gitconnected.com/how-to-implement-the-lru-cache-eviction-algorithm-using-linked-lists-fa07d29e407b