Nigel Horne

NAME

CHI::Driver::SharedMem - Cache data in shared memory

VERSION

Version 0.14

SYNOPSIS

CHI driver which stores data in shared memory objects for persistently over processes. Size is an optional parameter containing the size of the shared memory area, in bytes. Shmkey is a mandatory parameter containing the IPC key for the shared memory area. See IPC::SharedMem for more information.

    use CHI;
    my $cache = CHI->new(
        driver => 'SharedMem',
        size => 8 * 1024,
        shmkey => 12344321,     # Choose something unique, but the same across
                                # all caches so that namespaces will be shared,
                                # but we won't step on any other shm areas
    );
    # ...

The shared memory area is stored thus:

        # Number of bytes in the cache [ int ]
        'cache' => {
                'namespace1' => {
                        'key1' => 'value1',
                        'key2' => 'value2',
                        # ...
                },
                'namespace2' => {
                        'key1' => 'value3',
                        'key3' => 'value2',
                        # ...
                }
                # ...
        }

SUBROUTINES/METHODS

store

Stores an object in the cache

fetch

Retrieves an object from the cache

remove

Remove an object from the cache

clear

Removes all data from the current namespace

get_keys

Gets a list of the keys in the current namespace

get_namespaces

Gets a list of the namespaces in the cache

BUILD

Constructor - validate arguments

DEMOLISH

If there is no data in the shared memory area, and no-one else is using it, it's safe to remove it and reclaim the memory.

AUTHOR

Nigel Horne, <njh at bandsman.co.uk>

BUGS

Please report any bugs or feature requests to bug-chi-driver-sharedmem at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=CHI-Driver-SharedMem. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SEE ALSO

CHI, IPC::SharedMem

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc CHI::Driver::SharedMem

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

Copyright 2012-2014 Nigel Horne.

This program is released under the following licence: GPL




Hosting generously
sponsored by Bytemark