NAME
Util::Medley::Cache - Simple caching mechanism.
VERSION
version 0.060
SYNOPSIS
my $cache = Util::Medley::Cache->new; # see ATTRIBUTES for options
#
# positional
#
$cache->set('unittest', 'test1', {foo => bar});
my $data = $cache->get('test', 'unittest');
my @keys = $cache->getKeys('unittest');
$cache->delete('unittest', 'test1');
#
# named pair
#
$cache->set(ns => 'unittest',
key => 'test1',
data => { foo => 'bar' });
my $data = $cache->get(ns => 'unittest',
key => 'test1');
my @keys = $cache->getKeys(ns => 'unittest');
$cache->delete(ns => 'unittest',
key => 'test1');
DESCRIPTION
This class provides a thin wrapper around CHI. The caching has 2 levels:
level 1 (memory)
level 2 (disk)
When fetching from the cache, level 1 (L1) is always checked first. If the requested object is not found, it searches the level 2 (L2) cache.
The cached data can be an object, reference, or string.
All methods confess on error.
ATTRIBUTES
rootDir (optional)
Location of the L2 file cache.
- default
-
$HOME/.util-medley/cache
enabled (optional)
Toggles caching on or off.
- default
-
1
expireSecs (optional)
Sets the cache expiration.
- default
-
0 (never)
ns (optional)
Sets the cache namespace.
l1Enabled (optional)
Toggles the L1 cache on or off.
l2Enabled (optional)
Toggles the L2 cache on or off.
METHODS
clear
Clears all cache for a given namespace.
delete
Deletes a cache object.
destroy
Deletes L1 cache and removes L2 from disk completely.
get
Gets a unique cache object. Returns undef if not found.
getExpiresAt
Returns the expiration epoch for a given key.
getKeys
Returns a list of cache keys.
getNamespaceDir
Gets the L2 cache dir.
getNamespaces
Gets a list of namespaces.
set
Commits the data object to the cache.