No description, website, or topics provided.
Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.rspec
LICENSE
README.markdown
lru_cache.gemspec

README.markdown

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.