Simple cache for PHP with support for Redis, Memcached, APCu, and Files.
composer require robinn/cache
$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');
print_r($data); // item-value
Name | Return | Description |
---|---|---|
isConnected | bool | Check connection. |
exists | bool | Check if the data is cached. |
set | bool | Save data to cache. |
get | mixed | Get data by key. |
remember | mixed | Get the data or store if it is not cached. |
delete | bool | Delete data by key. |
flush | bool | Delete all data from cache. |
- PHP >= 8.2