Maison >développement back-end >tutoriel php >Comment utiliser la technologie de mise en cache pour améliorer la vitesse de traitement simultané élevée de PHP

Comment utiliser la technologie de mise en cache pour améliorer la vitesse de traitement simultané élevée de PHP

WBOY
WBOYoriginal
2023-08-10 12:55:441302parcourir

Comment utiliser la technologie de mise en cache pour améliorer la vitesse de traitement simultané élevée de PHP

Comment utiliser la technologie de mise en cache pour améliorer la vitesse de traitement à haute concurrence de PHP

Avec la popularité d'Internet et le développement de sites Web, PHP, en tant que langage de développement de sites Web couramment utilisé, a une demande croissante de traitement à haute concurrence . Dans les scénarios à forte concurrence, afin d'améliorer la vitesse de réponse et les performances du site Web, l'utilisation de la technologie de mise en cache est une méthode courante. Cet article explique comment utiliser la technologie de mise en cache pour améliorer la vitesse de traitement à haute concurrence de PHP et donne des exemples de code correspondants.

  1. Qu'est-ce que la technologie de mise en cache ?
    La technologie de mise en cache fait référence au stockage des résultats de calcul ou des données sur un support de stockage à grande vitesse afin qu'ils puissent être rapidement obtenus la prochaine fois que vous y accéderez. Dans le développement Web, les technologies de mise en cache couramment utilisées incluent la mise en cache des pages, la mise en cache des bases de données, la mise en cache des objets, etc. L'utilisation de la technologie de mise en cache peut réduire le nombre d'accès à la base de données et améliorer la vitesse de réponse et les performances globales du site Web.
  2. Mise en cache des pages
    La mise en cache des pages consiste à stocker le contenu complet de la page dans le cache et à renvoyer directement le contenu de la page mise en cache lors de la prochaine visite sans avoir besoin d'exécuter des scripts PHP et des requêtes de base de données. Dans les scénarios à forte concurrence, la mise en cache des pages peut réduire considérablement la charge sur le serveur et améliorer la vitesse de réponse.

Voici un exemple de code pour un cache de page simple :

<?php
// 检查缓存文件是否存在
if (file_exists('cache/pagecache.html') && time() - filemtime('cache/pagecache.html') < 300) {
    // 如果缓存文件存在且未过期,直接输出缓存内容
    echo file_get_contents('cache/pagecache.html');
} else {
    // 如果缓存文件不存在或已过期,执行页面渲染逻辑
    ob_start();

    // ... 页面渲染逻辑 ...

    $content = ob_get_clean();

    // 将页面内容写入缓存文件
    file_put_contents('cache/pagecache.html', $content);

    echo $content;
}
?>

Dans le code ci-dessus, vérifiez si le fichier cache existe et n'a pas expiré. Si le fichier cache existe et n'a pas expiré, le contenu du cache est directement généré, sinon la logique de rendu de page est exécutée et le contenu de la page est écrit dans le fichier cache.

  1. Cache de base de données
    Le cache de base de données stocke les résultats des requêtes de base de données dans le cache. La prochaine fois que vous interrogerez les mêmes données, les résultats de la requête mis en cache seront directement renvoyés sans interroger à nouveau la base de données. Dans les scénarios à forte concurrence, la mise en cache de la base de données peut réduire le nombre d’accès à la base de données et améliorer la vitesse de réponse du site Web.

Voici un exemple de code pour un simple cache de requêtes de base de données :

<?php
function getArticles() {
    // 检查缓存
    $cacheKey = 'cache:articles';
    $articles = cache_get($cacheKey);

    // 如果缓存存在,直接返回缓存数据
    if ($articles) {
        return $articles;
    }

    // 如果缓存不存在,查询数据库
    $sql = "SELECT * FROM articles";
    $result = mysqli_query($connection, $sql);
    $articles = mysqli_fetch_all($result, MYSQLI_ASSOC);

    // 将查询结果存储到缓存中
    cache_set($cacheKey, $articles, 300);

    return $articles;
}

// 调用函数获取文章列表
$articles = getArticles();
?>

Dans le code ci-dessus, vérifiez d'abord si le cache existe. Si le cache existe, les données mises en cache sont renvoyées directement ; sinon, la requête de base de données est exécutée et les résultats de la requête sont stockés dans le cache.

  1. Mise en cache d'objets
    La mise en cache d'objets consiste à stocker des objets dans le cache et à renvoyer directement l'objet mis en cache lors du prochain accès sans qu'il soit nécessaire de recréer l'objet. Dans les scénarios à forte concurrence, la mise en cache des objets peut réduire le nombre de créations d'objets et améliorer la vitesse de réponse du site Web.

Voici un exemple de code pour un cache d'objets simple :

<?php
class User {
    // ... 用户属性和方法 ...

    public static function getById($id) {
        // 检查缓存
        $cacheKey = 'cache:user:' . $id;
        $user = cache_get($cacheKey);

        // 如果缓存存在,直接返回缓存对象
        if ($user) {
            return $user;
        }

        // 如果缓存不存在,查询数据库
        $sql = "SELECT * FROM users WHERE id = $id";
        $result = mysqli_query($connection, $sql);
        $userData = mysqli_fetch_assoc($result);

        // 创建User对象
        $user = new User($userData);

        // 将User对象存储到缓存中
        cache_set($cacheKey, $user, 300);

        return $user;
    }
}

// 调用静态方法获取用户对象
$user = User::getById(1);
?>

Dans le code ci-dessus, vérifiez d'abord si le cache existe. Si le cache existe, renvoyez directement l'objet cache ; sinon, effectuez une requête de base de données et créez un objet User, puis stockez l'objet User dans le cache.

Résumé :
L'utilisation de la technologie de mise en cache peut améliorer efficacement la vitesse de traitement à haute concurrence de PHP. La mise en cache des pages, la mise en cache des bases de données et la mise en cache des objets sont toutes des technologies de mise en cache courantes. En mettant en œuvre une logique de mise en cache correspondante, le nombre d'accès à la base de données, de rendus de pages et de créations d'objets peut être réduit, et la vitesse de réponse et les performances globales du site Web peuvent être améliorées.

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