A fast little LRU cache.
To start using
tinylru, install Go and run go get:
$ go get -u github.com/tidwall/tinylru
This will retrieve the library.
// Create an LRU cache var cache tinylru.LRU // Set the cache size. This is the maximum number of items that the cache can // hold before evicting old items. The default size is 256. cache.Resize(1024) // Set a key. Returns the previous value and ok if a previous value exists. prev, ok := cache.Set("hello", "world") // Get a key. Returns the value and ok if the value exists. value, ok := cache.Get("hello") // Delete a key. Returns the deleted value and ok if a previous value exists. prev, ok := tr.Delete("hello")
Set function may evict old items when adding a new item while LRU is at capacity. If you want to know what was evicted then use the
// Set a key and return the evicted item, if any. prev, ok, evictedKey, evictedValue, evicted := cache.SetEvicted("hello", "jello")
Josh Baker @tidwall
tinylru source code is available under the MIT License.