LRUCache
It's a simple in-memory cache that expires the least recently used item in the cache when the count of items in the cache reaches a fixed limit.
Installation
$ gem install lru_cache
Usage
require "lru_cache"
# create a new cache with a 1,000 item limit
cache = LRUCache.new(1_000)
# get or set item in cache
cache["some key"] ||= expensive_operation
By default the LRUCache is not thread-safe. If you intend to access the cache in multi-threaded code, use LRUCache::ThreadSafe.
require "lru_cache/thread_safe"
# create a new thread-safe cache with a 1,000 item limit
cache = LRUCache::ThreadSafe.new(1_000)
# get or set item in cache
cache["some key"] ||= expensive_operation
Public Instance Methods
-
#clear
empties the cache -
#count
returns the number of items currently in cache -
#delete(key)
removes an item from the cache -
#get(key)
returns the cached value or nil -
#limit
returns the cache limit (defaults to 1) -
#limit=value
sets the cache limit to value -
#set(key, value)
stores the value in the cache -
#[key]
alias for#get(key)
-
#[key]=value
alias for#set(key, value)
License
This code is released under the MIT license, and is copyright 2012 by Brendan Baldwin. Please see the accompanying LICENSE file for the full text of the license.