Simple cache

July 12, 2026 ยท View on GitHub

Simple cache for PHP with support for Redis, Memcached, APCu, and Files.

Visitor Badge

Installation

composer require robinn/cache

Usage

$cache = new RobiNN\Cache\Cache([
    // Available config options
    'storage'   => 'file', // apcu|file|memcached|redis
    'file'      => [
        'path' => __DIR__.'/cache', // The path to the folder containing the cached content.
        //'secret' => 'secret_key', // For securing file names (optional).
        //'remove_expired' => true, // Automatically remove all expired keys (it can affect performance) (optional).
    ],
    'redis'     => [
        'host' => '127.0.0.1', // Optional when a path is specified.
        'port' => 6379, // Optional when the default port is used.
        //'database' => 0, // Default database (optional).
        //'username' => '', // ACL - requires Redis >= 6.0 (optional).
        //'password' => '', // Optional.
        //'path' => '/var/run/redis/redis-server.sock', // Unix domain socket (optional).
    ],
    'memcached' => [
        'host' => '127.0.0.1', // Optional when a path is specified.
        'port' => 11211, // Optional when the default port is used.
        //'path' => '/var/run/memcached/memcached.sock', // Unix domain socket (optional).
        //'sasl_username' => '', // SASL auth (optional).
        //'sasl_password' => '', // SASL auth (optional).
    ],
]);

$key = 'item-key';

if ($cache->exists($key)) {
    $data = $cache->get($key);
} else {
    $data = 'item-value';
    $cache->set($key, $data);
}

// The above code can also be shortened to one line
$data = $cache->remember($key, 'item-value');

// Or with a closure that is executed only on a cache miss
$data = $cache->remember($key, static fn () => 'item-value');

print_r($data); // item-value

Methods

NameReturnDescription
isConnectedboolCheck connection.
existsboolCheck if the data is cached.
setboolSave data to cache.
getmixedGet data by key.
remembermixedGet the data or store if it is not cached.
deleteboolDelete data by key.
flushboolDelete all data from cache.

Requirements

  • PHP >= 8.4