lru cache, double linked list, map key and node addr, use non-data head and tail