func NewCache(limit int) Cache {
	return Cache{
		m:     make(map[interface{}]*list.Element, limit),
		list:  list.New(),
		limit: limit,
	}
}
NewCache creates an initialized and empty LRU cache.
package lru
import (
	"container/list"
	"sync"
)
type Cache struct {
	mu    sync.Mutex
	m     map[interface{}]*list.Element
	list  *list.List
	limit int
}