Maison >développement back-end >tutoriel php >Pratique de programmation PHP : comment appliquer la mise en cache de base de données pour améliorer les performances

Pratique de programmation PHP : comment appliquer la mise en cache de base de données pour améliorer les performances

WBOY
WBOYoriginal
2023-06-22 09:54:531486parcourir

PHP, en tant que langage de programmation populaire, est largement utilisé dans le domaine du développement Web. Dans le processus de développement de projet actuel, la manière d'optimiser les performances du code est l'une des compétences que les programmeurs PHP doivent maîtriser. Cet article combinera des cas réels pour présenter comment appliquer la mise en cache de base de données pour améliorer les performances des programmes PHP.

1. Qu'est-ce que la mise en cache de base de données ?

La mise en cache de base de données fait référence à l'ajout d'une couche de cache entre l'application et le serveur de base de données pour mettre en cache les résultats fréquemment interrogés dans la mémoire, augmentant ainsi la vitesse des requêtes et réduisant la pression de charge sur la base de données. Généralement, le mécanisme de mise en cache stocke les résultats de la requête dans la mémoire sous la forme d'une paire clé-valeur. Lorsque la même requête est demandée la prochaine fois, les résultats sont obtenus directement à partir du cache, évitant ainsi une nouvelle requête dans la base de données.

2. Pourquoi le cache est nécessaire

L'utilisation du cache peut améliorer la vitesse de réponse et la simultanéité de l'application. En cas de concurrence élevée, la pression de charge des requêtes de base de données est très élevée. Chaque requête nécessite plusieurs étapes telles que la connexion à la base de données, l'exécution d'instructions SQL et le renvoi des résultats, provoquant ainsi un goulot d'étranglement dans la base de données. L'avantage de l'utilisation du cache est qu'il peut réduire la charge sur la base de données et améliorer la vitesse de réponse et la simultanéité du système.

3. Exemple d'application

Considérez un scénario d'application pratique : la page d'accueil d'un site Web de commerce électronique doit afficher les dernières informations sur le produit, notamment le nom du produit, son prix, des images et d'autres informations. Ces informations sur le produit sont stockées dans la base de données MySQL. Chaque demande de page d'accueil du site Web doit se connecter à la base de données, exécuter l'instruction SQL et renvoyer les résultats. L'ensemble du processus prend du temps. À l’heure actuelle, la mise en cache peut être utilisée pour améliorer les performances.

  1. Installez le serveur de cache Redis

Tout d'abord, vous devez installer le serveur de cache Redis. Redis est une base de données en mémoire hautes performances qui prend en charge diverses structures de données, notamment des chaînes, des tables de hachage, des listes, des ensembles, des ensembles ordonnés, etc. Redis est écrit en langage C, est très rapide et peut gérer un nombre élevé de requêtes simultanées.

  1. Configurer le pilote de cache de base de données

En PHP, vous pouvez utiliser une variété de pilotes de cache pour implémenter la mise en cache de base de données, tels que : Memcached, Redis, etc. Ici, nous prenons Redis comme exemple. En PHP, l'utilisation du cache Redis nécessite l'installation de la bibliothèque d'extension phpredis, qui peut être installée via PECL ou le code source.

Après avoir configuré Redis, vous devez configurer le pilote de cache dans le programme PHP :

$redis = new Redis();
$redis->connect('127.0.0.1', 6379); //Se connecter à le serveur Redis

$driver = new DoctrineCommonCacheRedisCache();
$driver->setRedis($redis); //Définir le pilote de cache Redis

  1. Utilisez le cache pour interroger la base de données

Avec le pilote de cache, vous pouvez utiliser le cache pour interroger la base de données. Avant l'interrogation, les données sont lues dans le cache. Si elles existent, le résultat est renvoyé directement. S'il n'existe pas, la requête de base de données est exécutée, le résultat est stocké dans le cache et le résultat est renvoyé.

Le framework Doctrine ORM est utilisé ici pour effectuer des requêtes de base de données :

utilisez DoctrineORMEntityManager;

$em = EntityManager::create($conn, $config);

$cache = $em->getConfiguration()- > getQueryCacheImpl();

$query = $em->createQueryBuilder()

        ->select('p')
        ->from('Product', 'p')
        ->getQuery()
        ->useQueryCache(true)  //启用查询缓存
        ->setResultCacheDriver($driver)  //设置结果缓存驱动
        ->setResultCacheLifetime(3600)  //设置缓存时间为1小时
        ->getResult();

Avant d'interroger, appelez la méthode setResultCacheDriver() pour définir le pilote de cache des résultats et appelez la méthode setResultCacheLifetime() pour définir la durée du cache. . Dans la requête, appelez la méthode useQueryCache() pour activer le cache de requêtes, afin que les résultats puissent être obtenus directement à partir du cache lors de la requête suivante, évitant ainsi le processus de connexion à la requête de base de données.

4. Résumé

L'utilisation de la mise en cache de base de données peut améliorer efficacement les performances des programmes PHP, réduire la pression de charge sur la base de données et améliorer la vitesse de réponse et la simultanéité du système. Dans le développement réel, le pilote de cache approprié doit être sélectionné en fonction de la situation spécifique et un temps de cache raisonnable doit être défini pour maximiser les avantages du cache.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn