Maison  >  Article  >  développement back-end  >  Utilisez PHP et Redis pour implémenter la mise en cache et améliorer les performances du site Web

Utilisez PHP et Redis pour implémenter la mise en cache et améliorer les performances du site Web

PHPz
PHPzoriginal
2023-06-27 17:43:41818parcourir

De nos jours, les sites Web sont devenus un élément indispensable de la vie des gens. Cependant, lorsque le trafic sur un site Web augmente, l’expérience utilisateur en souffre souvent. Améliorer les performances des sites Web est devenu une tâche importante pour les administrateurs et les développeurs de sites Web. Cet article explique comment utiliser PHP et Redis pour implémenter la mise en cache afin d'améliorer les performances du site Web.

  1. Qu'est-ce que Redis ?

Redis est un système de gestion de base de données de cache basé sur la mémoire. Il peut être utilisé comme base de données, cache et courtier de messages. L'avantage de Redis réside dans son mécanisme de stockage et de récupération à grande vitesse, qui peut même fournir des vitesses plus élevées que le stockage sur disque. De plus, Redis prend également en charge diverses structures de données, notamment des chaînes, des hachages, des listes, des ensembles et des ensembles ordonnés.

  1. Scénarios d'application de Redis

Redis propose plusieurs scénarios d'application dans les applications Web, dont le plus courant est la mise en cache. En utilisant la mise en cache Redis, la plupart des applications Web peuvent bénéficier d'améliorations significatives des performances.

En plus de la mise en cache, Redis peut également être utilisé pour traiter les données de session. Pour les sites Web multi-serveurs qui doivent partager des données de session, l'utilisation de Redis peut facilement gérer les données de session sans avoir besoin de stockage basé sur des fichiers ou des bases de données.

De plus, Redis peut également être utilisé pour les courtiers de messages. Parce que Redis est si rapide, il est idéal pour créer des applications en temps réel telles que des jeux en ligne, des cotations boursières et des applications de chat.

  1. Utiliser Redis avec PHP

PHP est un langage de script côté serveur populaire largement utilisé dans le développement d'applications Web. Pour utiliser Redis, nous devons utiliser une bibliothèque PHP pour communiquer avec Redis. Il existe deux bibliothèques PHP principales pour communiquer avec Redis : l'extension phpredis et la bibliothèque Predis.

L'extension phpredis est fournie par l'équipe Redis et est compatible avec PHP 5.3 et supérieur. D'autre part, la bibliothèque Predis est une implémentation PHP pure de la bibliothèque Redis qui prend en charge PHP 5.3 et supérieur. La bibliothèque Predis est très pratique car elle peut être installée et utilisée via Composer.

La démo suivante utilise Redis via l'extension PHPredis et la bibliothèque Predis.

3.1 Utilisation de l'extension PHPREDIS

Tout d'abord, nous devons installer l'extension PHPREDIS. Si vous utilisez Ubuntu, vous pouvez l'installer via la commande suivante :

sudo apt-get install php-redis

Une fois l'installation terminée, nous pouvons nous connecter à Redis via le code suivant :

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

Vous pouvez changer l'IP et le port connectés en IP et port du serveur Redis.

Une fois la connexion réussie, nous pouvons stocker et récupérer les données de Redis en utilisant la méthode suivante :

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');

Lorsque les données existent dans Redis, la variable $value contiendra la valeur récupérée de Redis.

3.2 Utilisation de la bibliothèque Predis

Si vous choisissez d'utiliser la bibliothèque Predis, vous pouvez utiliser Composer pour l'ajouter à votre projet. Predis peut être installé à l'aide de la commande suivante :

composer require predis/predis

La méthode de connexion à Redis et de stockage et de récupération des données est la même que celle de l'extension phpredis :

// 连接Redis
$redis = new PredisClient(array(
    'scheme' => 'tcp',
    'host'   => '127.0.0.1',
    'port'   => 6379,
));

// 存储数据
$redis->set('key', 'value');

// 检索数据
$value = $redis->get('key');
  1. Implémentation du cache Redis

Le cache consiste généralement à stocker les accès fréquents, mais Il n'est pas nécessaire de récupérer fréquemment les données de la source d'origine pour y parvenir. Le cache peut être stocké en mémoire afin d'être accessible rapidement.

Utiliser le cache Redis en PHP est un processus simple. Il existe deux modes principaux de mise en cache Redis : la mise en cache à clé unique et la mise en cache à clés multiples.

La mise en cache à clé unique est le mode de mise en cache le plus simple. Il stocke une valeur unique dans Redis et récupère cette valeur uniquement en cas de besoin. Voici le code pour une implémentation de cache à clé unique :

function get_data_from_cache_or_db($key) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $value = $redis->get($key);

    if ($value === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $value = get_data_from_database($key);

        // 只有当数据从数据库中检索时,才将数据存储到缓存中
        $redis->set($key, $value);
    }

    return $value;
}

Dans le code ci-dessus, lorsqu'il n'y a aucune valeur dans le cache, il récupérera les données de la base de données et les stockera dans Redis. De cette façon, les données peuvent être récupérées directement depuis Redis lors de la prochaine visite.

D'un autre côté, la mise en cache de plusieurs clés est une forme plus avancée de mise en cache Redis. Ce mode est implémenté en stockant plusieurs clés dans un hachage Redis. Dans ce mode, chaque requête peut mettre en cache et récupérer des données en transmettant un identifiant unique. Voici le code d'implémentation pour la mise en cache de plusieurs clés :

function get_data_from_cache_or_db($id) {
    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);

    $cached_data = $redis->hget('cached_data', $id);

    if ($cached_data === false) {
        // 如果缓存中没有值,从数据库中检索数据
        $data = get_data_from_database($id);

        // 保存数据到缓存哈希
        $redis->hset('cached_data', $id, serialize($data));
    } else {
        $data = unserialize($cached_data);
    }

    return $data;
}

Dans le code ci-dessus, le nom de clé du hachage Redis est "cached_data", et nous stockons chaque élément de données dans le hachage sous forme de clé avec son identifiant unique. Lors de la mise en cache des données, nous stockons sa valeur sérialisée dans un hachage Redis en utilisant la méthode « hset » dans Redis.

Lors de la récupération des données du cache, nous utilisons la méthode "hget" pour récupérer la valeur mise en cache. Si la valeur n'existe pas, renvoie false. Sinon, nous désérialisons la valeur mise en cache et la renvoyons.

  1. Résumé

À partir de cet article, vous comprenez les avantages et les scénarios d'application de Redis. Nous avons également expliqué comment utiliser Redis avec PHP et examiné les différentes manières d'implémenter la mise en cache Redis.

L'utilisation du cache Redis peut améliorer considérablement les performances de votre application Web. Les données sont stockées en mémoire afin d'être accessibles plus rapidement. Bien entendu, Redis n'est pas une solution de mise en cache adaptée à toutes les applications Web, mais lorsque de grandes quantités de données doivent être traitées et qu'une réponse rapide est requise, la mise en cache Redis est une solution puissante.

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