📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials PHP for Beginners Caching with APCu

Caching with APCu

6 min read
Caching stores results of expensive operations for reuse. Use APCu for single-server memory caching or Redis for shared caching across servers. Good caching can dramatically reduce database load and response times.

Caching

// APCu — in-memory cache (single server)
apcu_store("user_42", $userData, 3600);  // cache for 1 hour
$data = apcu_fetch("user_42");
apcu_delete("user_42");
apcu_clear_cache();

// File-based cache
function getFromCache(string $key, callable $fn, int $ttl = 3600): mixed {
    $file = sys_get_temp_dir() . "/cache_" . md5($key) . ".cache";

    if (file_exists($file) && (time() - filemtime($file)) < $ttl) {
        return unserialize(file_get_contents($file));
    }

    $data = $fn();
    file_put_contents($file, serialize($data));
    return $data;
}

$users = getFromCache("all_users", fn() => $pdo->query("SELECT * FROM users")->fetchAll());

// Redis with predis
// composer require predis/predis
$redis = new Predis\Client();
$redis->setex("key", 3600, json_encode($data));
$cached = json_decode($redis->get("key"), true);