|
NAMECHI::Driver::DBI - Use DBI for cache storageVERSIONversion 1.27SYNOPSISuse CHI; # Supply a DBI handle # my $cache = CHI->new( driver => 'DBI', dbh => DBI->connect(...) ); # or a DBIx::Connector # my $cache = CHI->new( driver => 'DBI', dbh => DBIx::Connector->new(...) ); # or code that generates a DBI handle # my $cache = CHI->new( driver => 'DBI', dbh => sub { ...; return $dbh } ); DESCRIPTIONThis driver uses a database table to store the cache. The newest versions of MySQL and SQLite work are known to work. Other RDBMSes should work.Why cache things in a database? Isn't the database what people are trying to avoid with caches? This is often true, but a simple primary key lookup is extremely fast in many databases and this provides a shared cache that can be used when less reliable storage like memcached is not appropriate. Also, the speed of simple lookups on MySQL when accessed over a local socket is very hard to beat. DBI is fast. SCHEMAEach namespace requires a table like this:CREATE TABLE chi_<namespace> ( `key` VARCHAR(...), `value` TEXT, PRIMARY KEY (`key`) ) The size of the key column depends on how large you want keys to be and may be limited by the maximum size of an indexed column in your database. The driver will try to create an appropriate table for you if you pass "create_table" to the constructor. CONSTRUCTOR PARAMETERS
The last two options are valuable if your CHI object is going to live for enough time that a single DBI handle might time out, etc.
AUTHORSOriginal version by Justin DeVuyst and Perrin Harkins. Currently maintained by Jonathan Swartz.COPYRIGHT AND LICENSEThis software is copyright (c) 2011 by Justin DeVuyst.This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
Visit the GSP FreeBSD Man Page Interface. |