Mojolicious::Plugin::CHI - Use CHI Caches in Mojolicious
# Mojolicious $app->plugin(CHI => { MyCache => { driver => 'FastMmap', root_dir => '/cache', cache_size => '20m' } }); # Mojolicious::Lite plugin 'CHI' => { default => { driver => 'Memory', global => 1 } }; # In Controllers: $c->chi('MyCache')->set(my_key => 'This is my value'); print $c->chi('MyCache')->get('my_key'); # Using the default cache $c->chi->set(from_memory => 'With love!'); print $c->chi->get('from_memory');
Mojolicious::Plugin::CHI is a simple plugin to work with CHI caches within Mojolicious.
# Mojolicious $app->plugin(CHI => { MyCache => { driver => 'FastMmap', root_dir => '/cache', cache_size => '20m' }, default => { driver => 'Memory', global => 1 }, namespaces => 1 }); # Mojolicious::Lite plugin 'CHI' => { default => { driver => 'Memory', global => 1 } }; # Or in your config file { CHI => { default => { driver => 'Memory', global => 1 } } }
Called when registering the plugin. On creation, the plugin accepts a hash of cache names associated with CHI objects. All cache handles are qualified CHI namespaces. You can omit this mapping by passing a namespaces parameter with a false value. The handles have to be unique, i.e. you can't have multiple different default caches in mounted applications using Mojolicious::Plugin::Mount. Logging defaults to the application log, but can be overridden using on_get_error and on_set_error.
namespaces
false
default
All parameters can be set as part of the configuration file with the key CHI or on registration (that can be overwritten by configuration).
CHI
# In Controllers: $c->chi('MyCache')->set(my_key => 'This is my value', '10 min'); print $c->chi('MyCache')->get('my_key'); print $c->chi->get('from_default_cache');
Returns a CHI handle if registered. Accepts the name of the registered cache. If no cache handle name is given, a cache handle name default is assumed.
The following commands are available when the plugin is registered.
perl app.pl chi list
List all CHI caches associated with your application.
perl app.pl chi purge mycache
Remove all expired entries from the cache namespace.
perl app.pl chi clear mycache
Remove all entries from the cache namespace.
perl app.pl chi expire mykey perl app.pl chi expire mycache mykey
Set the expiration date of a key to the past. This does not necessarily delete the data, but makes it unavailable using get.
get
perl app.pl chi remove mykey perl app.pl chi remove mycache mykey
Remove a key from the cache.
Mojolicious, CHI.
Note: Old versions of CHI had a lot of dependencies. It was thus not recommended to use this plugin in a CGI environment. Since new versions of CHI use Moo instead of Moose, more use cases may be possible.
Boris Däppen
Renée Bäcker
https://github.com/Akron/Mojolicious-Plugin-CHI
Copyright (C) 2012-2015, Nils Diewald.
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.
To install Mojolicious::Plugin::CHI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::CHI
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::CHI
For more information on module installation, please visit the detailed CPAN module installation guide.