An implementation of LRU cache