The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tie::CHI - Tied hash to persistent CHI cache

VERSION

version 0.02

SYNOPSIS

    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);

DESCRIPTION

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.

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.

    tie %cache, 'Tie::CHI', { 
        namespace => 'products',
        driver => 'DBI',
        dbh => DBIx::Connector->new(...),
        expires_in => '4 hours',
        expires_variance => '0.2'
    };

SUPPORT AND DOCUMENTATION

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

SEE ALSO

CHI

AUTHOR

Jonathan Swartz <swartz@pobox.com>

COPYRIGHT AND LICENSE

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.