CHI::Driver::Memory(3pm)

CHI::Driver::Memory3pm

In-process memory based cache

Usage

    use CHI;
    my $hash = {};
    my $cache = CHI->new( driver => 'Memory', datastore => $hash );
    my $cache = CHI->new( driver => 'Memory', global => 1 );
    my $cache = CHI->new( driver => 'Memory', global => 0 );

Version

version 0.61

Overview

This cache driver stores data on a per-process basis. This is the fastest of the cache implementations, but data can not be shared between processes. Data will remain in the cache until cleared, expired, or the process dies.

To maintain the same semantics as other caches, references to data structures are deep-copied on set and get. Thus, modifications to the original data structure will not affect the data structure stored in the cache, and vice versa. See CHI::Driver::RawMemory for a faster memory cache that sacrifices this behavior.

Options

When using this driver, the following options can be passed to CHI->new() in addition to the CHI. One of datastore or global must be specified, or else a warning (possibly an error eventually) will be thrown.

datastore [HASHREF]

A reference to a hash to be used for storage. Within the hash, each namespace is used as a key to a second-level hash. This hash may be passed to multiple CHI::Driver::Memory constructors.

global [BOOL]

Use a standard global datastore. Multiple caches created with this set to true will see the same data. Before 0.21, this was the default behavior; now it must be specified explicitly (to avoid accidentally sharing the same datastore in unrelated code).

If this is set to false then datastore will be set to a new reference to a hash.

Discard policy

For size aware caches, this driver implements an 'LRU' policy, which discards the least recently used items first. This is the default policy.

Releases

7 releases since Debian 7 (Wheezy); the text changed 4 times.

  1. 7
  2. 8
  3. 9
  4. 10–11
  5. 12–13

Author

Jonathan Swartz <[email protected]>

From libchi-perl 0.61-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.