CHI::Driver::SharedMem - Cache data in shared memory
Version 0.19
CHI driver which stores data in shared memory objects for persistence 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', max_size => 2 * 1024, # Size of the cache shm_size => 32 * 1024, # Size of the shared memory area shm_key => 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', # ... } # ... }
Stores an object in the cache. The data are serialized into JSON.
Retrieves an object from the cache
Remove an object from the cache
Removes all data from the current namespace
Gets a list of the keys in the current namespace
Gets a list of the namespaces in the cache
Use an LRU algorithm to discard items when the cache can't add anything
When the Shared memory area is getting close to full, discard the least recently used objects
Constructor - validate arguments
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.
Nigel Horne, <njh at bandsman.co.uk>
<njh at bandsman.co.uk>
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.
bug-chi-driver-sharedmem at rt.cpan.org
Max_size is handled, but if you're not consistent across the calls to each cache, the results are unpredictable because it's used to create the size of the shared memory area.
The shm_size argument should be deprecated and only the max_size argument used.
CHI, IPC::SharedMem
You can find documentation for this module with the perldoc command.
perldoc CHI::Driver::SharedMemory
You can also look for information at:
MetaCPAN
https://metacpan.org/dist/CHI-Driver-SharedMem
RT: CPAN's request tracker
https://rt.cpan.org/NoAuth/Bugs.html?Dist=CHI-Driver-SharedMemory
CPAN Testers' Matrix
http://matrix.cpantesters.org/?dist=CHI-Driver-SharedMemory
CPAN Testers Dependencies
http://deps.cpantesters.org/?module=CHI::Driver::SharedMemory
Copyright 2010-2023 Nigel Horne.
This program is released under the following licence: GPL2
To install CHI::Driver::SharedMem, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CHI::Driver::SharedMem
CPAN shell
perl -MCPAN -e shell install CHI::Driver::SharedMem
For more information on module installation, please visit the detailed CPAN module installation guide.