# LJ::Cache - LRU Cache

- NAME
- SYNOPSIS
- DESCRIPTION
- AUTHOR
- SEE ALSO

# NAME

LJ::Cache - LRU Cache

# SYNOPSIS

      use LJ::Cache;
      my $cache = new LJ::Cache { 'maxsize' => 20 };
      my $value = $cache->get($key);
      unless (defined $value) {
          $val = "load some value";
          $cache->set($key, $value);
      }

# DESCRIPTION

This class implements an LRU dictionary cache. The two operations on it are `get()` and `set(),` both of which promote the key being referenced to the ``top'' of the cache, so it will stay alive longest.

When the cache is full and and a new item needs to be added, the oldest one is thrown away.

You should be able to regenerate the data at any time, if `get()` returns undef.

This class is useful for caching information from a slower data source while also keeping a bound on memory usage.

# AUTHOR

Brad Fitzpatrick, bradfitz@bradfitz.com

# SEE ALSO

`perl(1).`