NAME
Util::Medley::Cache - Simple caching mechanism.
VERSION
version 0.002
SYNOPSIS
$self->set(namespace => 'unittest',
key => 'test1',
data => { foo => 'bar' });
my $data = $self->get(namespace => 'unittest',
key => 'test1');
my @keys = $self->getKeys(namespace => 'unittest');
$self->delete(namespace => '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.
enabled (optional)
Toggles caching on or off.
expireSecs (optional)
Sets the cache expiration.
Default: 0 (never)
Env Var: MEDLEY_CACHE_DISABLED
namespace (optional)
Sets the cache namespace.
l1Enabled (optional)
Toggles the L1 cache on or off.
Default: 1
Env Var: MEDLEY_CACHE_L1_DISABLED
l2Enabled (optional)
Toggles the L2 cache on or off.
Default: 1
Env Var: MEDLEY_CACHE_L2_DISABLED
METHODS
clear
Clears all cache for a given namespace.
usage:
clear( [ namespace => $ns ] )
args:
namespace: The cache namespace.
delete
Deletes a cache object.
usage:
delete(
key => <string>,
[ namespace => <string> ]
)
args:
key: Unique identifier of the cache object.
namespace: The cache namespace.
destroy
Deletes L1 cache and removes L2 from disk completely.
usage:
destroy( [namespace => $ns] )
args:
namespace: The cache namespace.
get
Gets a unique cache object. Returns undef if not found.
usage:
get(
key => $key,
[ namespace => $ns ]
)
args:
key: Unique identifier of the cache object.
namespace: The cache namespace.
getNamespaceDir
Gets the L2 cache dir.
usage:
getNamespaceDir( [ namespace => $ns ] )
args:
namespace: The cache namespace.
set
Commits the data object to the cache.
usage:
set(
key => $key,
data => $data,
[ namespace => $ns ],
)
args:
key: Unique identifier of the cache object.
data: An object, reference, or string.
namespace: The cache namespace.
getKeys
Returns a list of cache keys.
usage:
getKeys( [ namespace => $ns ] )
args:
namespace: The cache namespace.