Design an efficient in-memory cache with an eviction policy such as LRU that supports fast reads and writes.