Tie::CHI - Tied hash to persistent CHI cache
version 0.02
use Tie::CHI; my %cache; # Pass CHI options to tie # tie %cache, 'Tie::CHI', { driver => 'File', root_dir => '/path/to/root' }; tie %cache, 'Tie::CHI', { driver => 'Memcached::libmemcached', namespace => 'homepage', servers => [ "10.0.0.15:11211", "10.0.0.15:11212" ], default_expires_in => '10 min' } ); # or pass an existing CHI object # my $chi_object = CHI->new(...); tie %cache, 'Tie::CHI', $chi_object; # Perform cache operations # my $customer = $cache{$name}; if ( !defined $customer ) { $customer = get_customer_from_db($name); $cache{$name} = $customer; } delete( $cache{$name} ); # Break the binding # untie(%cache);
Tie::CHI implements a tied hash connected to a CHI cache. It can be used with any of CHI's backends (File, Memcached, DBI, etc.)
Usage is one of the following:
tie %cache, 'Tie::CHI', $hash_of_chi_options; tie %cache, 'Tie::CHI', $existing_chi_cache;
A read/write/delete on the tied hash will result in a get/set/remove on the underlying cache. keys and each will be supported if the underlying CHI driver supports get_keys.
get
set
remove
keys
each
get_keys
There is no way to specify expiration for an individual set, but you can pass expires_in, expires_at and/or expires_variance to the tie to specify default expiration. e.g.
expires_in
expires_at
expires_variance
tie %cache, 'Tie::CHI', { namespace => 'products', driver => 'DBI', dbh => DBIx::Connector->new(...), expires_in => '4 hours', expires_variance => '0.2' };
Questions and feedback are welcome, and should be directed to the perl-cache mailing list:
http://groups.google.com/group/perl-cache-discuss
Bugs and feature requests will be tracked at RT:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Tie-CHI bug-tie-chi@rt.cpan.org
The latest source code can be browsed and fetched at:
http://github.com/jonswar/perl-tie-chi/tree/master git clone git://github.com/jonswar/perl-tie-chi.git
CHI
Jonathan Swartz <swartz@pobox.com>
This software is copyright (c) 2011 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.
To install Tie::CHI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Tie::CHI
CPAN shell
perl -MCPAN -e shell install Tie::CHI
For more information on module installation, please visit the detailed CPAN module installation guide.