Manual Reference Pages - CHI::DRIVER::FILE (3)
CHI::Driver::File - File-based cache using one file per entry in a multi-level
my $cache = CHI->new(
driver => File,
root_dir => /path/to/cache/root,
depth => 3,
max_key_length => 64
This cache driver stores data on the filesystem, so that it can be shared
between processes on a single machine, or even on multiple machines if using
Each item is stored in its own file. By default, during a set, a temporary file
is created and then atomically renamed to the proper file. While not the most
efficient, it eliminates the need for locking (with multiple overlapping sets,
the last one wins) and makes this cache usable in environments like NFS where
locking might normally be undesirable.
By default, the base filename is the key itself, with unsafe characters escaped
similar to URL escaping. If the escaped key is larger than max_key_length
(default 248 characters), it will be digested. You may want
to lower max_key_length if you are storing a lot of items as long filenames
can be more expensive to work with.
The files are evenly distributed within a multi-level directory structure with
a customizable depth, to minimize the time needed to search for a given
When using this driver, the following options can be passed to CHI->new() in
addition to the CHI.
The location in the filesystem that will hold the root of the cache. Defaults
to a directory called chi-driver-file under the OS default temp directory
(e.g. /tmp on UNIX). This directory will be created as needed on the first
The number of subdirectories deep to place cache files. Defaults to 2. This
should be large enough that no leaf directory has more than a few hundred
files. Each non-leaf directory contains up to 16 subdirectories (0-9, A-F).
Permissions mode to use when creating directories. Defaults to 0775.
Permissions mode to use when creating files, modified by the current umask.
Defaults to 0666.
Extension to append to filename. Default is .dat.
path_to_key ( $key )
Returns the full path to the cache file representing $key, whether or not that
entry exists. Returns the empty list if a valid path cannot be computed, for
example if the key is too long.
Returns the full path to the directory representing this caches namespace,
whether or not it has any entries.
TEMPORARY FILE RENAME
By default, during a set, a temporary file is created and then atomically
renamed to the proper file. This eliminates the need for locking. You can
subclass and override method generate_temporary_filename to either change
the path of the temporary filename, or skip the temporary file and rename
altogether by having it return undef.
Jonathan Swartz <email@example.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Jonathan Swartz.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
|perl v5.20.3 ||CHI::DRIVER::FILE (3) ||2013-07-21 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.