Position actuelle: Accueil> Derniers articles> Comment utiliser APCU_ENTRY pour mettre en cache les données de retour demandées par l'API

Comment utiliser APCU_ENTRY pour mettre en cache les données de retour demandées par l'API

gitbox 2025-05-27

La fonction APCU_ENTRY est une méthode d'opération de cache fournie par l'extension APCU. Sa fonction est de stocker une valeur dans le cache et d'exécuter une fonction de rappel pour obtenir les données lorsque la valeur n'existe pas. Cette fonction de rappel est généralement un endroit pour obtenir des données API ou effectuer des calculs complexes.

 mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
  • $ KEY : La valeur de clé en cache est généralement utilisée pour identifier les données mises en cache.

  • $ rappel : fonction de rappel. Lorsqu'il n'y a pas de clé dans le cache, la fonction de rappel sera exécutée pour obtenir des données.

  • $ ttl : la période de validité du cache, en secondes. Les données mises en cache seront supprimées après leur expiration.

Pourquoi utiliser APCU_ENTRY?

L'objectif principal de l'utilisation d'APCU_ENTRY est de réduire le nombre de demandes de base de données ou d'API distantes et d'améliorer la vitesse de réponse du système. Lorsque les données ont été mises en cache, la même demande suivante est lue directement à partir du cache sans recalculer ni accéder au service distant. Cela réduit non seulement considérablement la charge du serveur, mais améliore également efficacement l'expérience utilisateur.

Par exemple, lors de l'appel d'une interface API, les données renvoyées de l'API peuvent être relativement stables et ne changent pas fréquemment. En mettant en cache ces données de retour, vous pouvez éviter de faire la même demande d'API à chaque fois que la demande de l'utilisateur est demandée, accélérant ainsi la réponse.

Comment utiliser APCU_ENTRY CACHE API pour demander des données de retour?

Voici un exemple simple montrant comment mettre en cache les données renvoyées demandées à l'aide d'APCU_ENTRY .

1. Configurer APCU

Tout d'abord, assurez-vous que votre environnement PHP a l'extension APCU installée et activée. Si vous ne l'avez pas installé, vous pouvez l'installer via la commande suivante:

 sudo apt-get install php-apcu

Après l'installation, redémarrez le service PHP:

 sudo service php-fpm restart

2. Écrivez la logique du cache

Supposons que nous ayons une interface API qui obtient des données utilisateur en les demandant. Nous pouvons mettre en cache les données renvoyées via APCU_ENTRY .

 <?php
// demander API Obtenir des données utilisateur
function fetch_user_data($user_id) {
    // passer URL Obtenir des données,Ici, les données sont JSON Format
    $url = "https://gitbox.net/api/user/{$user_id}";
    $response = file_get_contents($url);
    return json_decode($response, true);
}

// utiliser apcu_entry cache API Retour des données
function get_user_data($user_id) {
    // cache的键值
    $cache_key = "user_data_{$user_id}";
    
    // 尝试从cache中Obtenir des données
    return apcu_entry($cache_key, function() use ($user_id) {
        // 如果cache中没有数据,Alors de API Obtenir des données
        return fetch_user_data($user_id);
    }, 3600); // cache 1 Heure
}

// Exemple d&#39;appel
$user_data = get_user_data(123);
print_r($user_data);
?>

Dans le code ci-dessus, nous définissons une fonction fetch_user_data pour obtenir des données utilisateur à partir de l'API distante. Ensuite, les données sont mises en cache via la fonction APCU_ENTRY , la valeur de clé en cache est user_data _ {$ user_id} et la période de validité en cache est de 1 heure. Si les données ne sont pas dans le cache, APCU_ENTRY exécutera une fonction de rappel, obtenez les données de l'API et le cache.

3. Assain les données mises en cache

Si les données correspondantes existent déjà dans le cache, APCU_ENTRY renvoie directement les données en cache sans exécuter à nouveau la fonction de rappel. Lorsque le cache expire, la prochaine demande réexécutera la fonction de rappel pour obtenir les dernières données et re-cache.

Suggestions d'optimisation

  1. Politique de mise en cache : sélectionnez la date d'expiration du cache appropriée. Dans les applications réelles, différentes données peuvent avoir différentes fréquences de mise à jour et différentes périodes de validité du cache peuvent être définies en fonction des conditions réelles.

  2. Nettoyage du cache : si les données changent, n'oubliez pas de nettoyer le cache. Vous pouvez utiliser APCU_DELETE pour supprimer le cache.

 apcu_delete($cache_key);
  1. Gestion de la mémoire : les données de cache APCU sont stockées dans la mémoire du serveur, donc lors de l'utilisation du cache, l'utilisation de la mémoire doit être prise en compte. Si la quantité de données mises en cache est trop grande, cela peut conduire à une mémoire insuffisante, ce qui affectera les performances du système.