LRU (least recently used) memory cache data structure with a similar API as NSMutableDictionary