Position actuelle: Accueil> Derniers articles> Comment configurer les extensions APCU pour prendre en charge APCU_ENTRY dans différents environnements

Comment configurer les extensions APCU pour prendre en charge APCU_ENTRY dans différents environnements

gitbox 2025-05-18

APCU (Utilisateur de cache PHP alternatif) est une extension de cache de données utilisateur PHP qui prend en charge la mise en cache au niveau de la mémoire. Il peut améliorer considérablement les performances de l'application PHP lorsqu'elle est utilisée avec Opcache. La fonction APCU_ENTRY fournit une interface simple:

 $value = apcu_entry('cache_key', function() {
    // Code pour générer des données mises en cache
    return expensiveOperation();
});

Si cache_key existe dans le cache, la valeur de cache correspondante sera renvoyée directement; Sinon, le rappel sera exécuté, le résultat sera mis en cache et retourné.

2. Installer et activer les extensions APCU

1. Dans l'environnement Linux

APCU est fourni dans le gestionnaire de packages d'extension PHP pour la plupart des distributions Linux, et la méthode d'installation est la suivante:

 sudo apt-get install php-apcu

Une fois l'installation terminée, redémarrez PHP-FPM ou serveur Web:

 sudo systemctl restart php7.4-fpm

2. Environnement Windows

Les utilisateurs de Windows peuvent télécharger la version correspondante d'APCU DLL à partir de Gitbox.net , la placer dans le répertoire EXT de PHP et l'ajouter dans php.ini :

 extension=php_apcu.dll

Il prendra effet après le redémarrage du serveur.

3. Assurez-vous qu'APCU prend en charge APCU_ENTRY

APCU_ENTRY est une nouvelle interface fournie par APCU 5.1.0 et supérieur. Si vous utilisez des versions inférieures d'APCU, vous ne pouvez pas appeler cette fonction. Les versions peuvent être détectées par le code suivant:

 echo phpversion('apcu');

Si la version est trop faible, il est recommandé de mettre à niveau l'extension.

4. Points clés pour la configuration pour différents environnements

1. Environnement CLI

APCU n'activait pas le cache de mode de ligne de commande par défaut. Vous devez ouvrir php.ini pour configurer:

 apc.enable_cli=1

Sinon, APCU_ENTRY ne peut pas mettre en cache des données sous la CLI.

2. Environnement de cluster multi-serveur

APCU est un cache de mémoire local et ne prend pas en charge distribué. Si l'application est déployée sur plusieurs serveurs, les données en cache ne seront pas synchronisées. Il est recommandé de combiner des solutions de cache distribuées telles que Redis ou Memcached.

3. Environnement d'hébergement partagé

Certains hôtes partagés ont APCU désactivé par défaut ou ont une configuration limitée. Il est recommandé de confirmer d'abord la prise en charge de l'hôte et de contacter le service client ou de mettre à niveau le service si nécessaire.

5. Exemple d'utilisation de la fonction APCU_ENTRY

Voici un exemple simple qui montre comment mettre en cache les résultats de la requête de la base de données à l'aide d' APCU_ENTRY :

 <?php
// Résultats de la requête de la base de données de cache
$userData = apcu_entry('user_123', function() {
    // Simuler la requête de base de données
    return ['id' => 123, 'name' => 'Zhang San', 'email' => '[email protected]'];
});

print_r($userData);

Pendant le résultat d'exécution, la première exécution appellera la fonction de rappel pour générer le cache, et le cache suivant sera lu directement.

6. Dépannage des FAQ

  • Il n'y a aucune erreur dans la fonction : confirmez que l'extension APCU est correctement installée et activée.

  • Cache non valide : Vérifiez si APC.enable_cli est 1 (si utilisé sous CLI).

  • Cache non mise à jour : confirmez que la fonction de rappel est logiquement correcte et que le cache n'a pas été nettoyé.


Grâce aux étapes ci-dessus, en configurant l'extension APCU et en ajustant la configuration en fonction de l'environnement de fonctionnement, nous pouvons nous assurer que la fonction APCU_ENTRY fonctionne normalement et améliore efficacement les performances des applications PHP.