Design an efficient in-memory caching mechanism that supports eviction policies like Least Recently Used (LRU).