LRU cache implementation