takuya/php-sysv-ipc-shm-cache

0.2 2025-04-29 07:17 UTC

This package is auto-updated.

Last update: 2025-05-10 02:00:27 UTC


README

This package is for caching data into SysV SharedMemory.

Installing

from Packagist

composer require takuya/php-sysv-ipc-shm-cache

from GitHub

name='php-sysv-ipc-shm-cache'
composer config repositories.$name \
vcs https://github.com/takuya/$name  
composer require takuya/$name:master
composer install

Examples

<?php
$cache = new SysvShmCache('cache_name');
$cache->set($key, $data);
$cache->has($key);
$cache->get($key);
$cache->delete($key);

Safer Update Value for Multi Process.

Update read/write at once which called by get() then set(), use locking.

<?php
$cache = new SysvShmCache($cache_name);
$key = 'key';
$cache->runWithLock(function($cache)use($key,$idx){
  $cache->set($key, $cache->get($key) + 10 );
});

// without locking, this can be dirty read.
$cache->set($key, $cache->get($key) + 10 );

'psr/simple-cache' are used.

This package is implementation of psr/simple-cache into Shared Memory (shm_xxx).

remove ipc by manually

If unused ipc remains. use SHELL command to remove.

ipcs -m | grep $USER | grep -oE '0x[a-f0-9]+' | xargs -I@ ipcrm --shmem-key @
ipcs -s | grep $USER | grep -oE '0x[a-f0-9]+' | xargs -I@ ipcrm --semaphore-key @