Maison >développement back-end >tutoriel php >Utilisation de la technologie de mise en cache Redis en PHP pour optimiser la lecture et l'écriture de la base de données

Utilisation de la technologie de mise en cache Redis en PHP pour optimiser la lecture et l'écriture de la base de données

WBOY
WBOYoriginal
2023-06-20 13:48:071341parcourir

Avec le développement continu de la technologie Internet, la quantité de données devient de plus en plus grande et la pression de lecture et d'écriture des bases de données augmente également. Cependant, notre expérience utilisateur doit maintenir une réponse extrêmement rapide à tout moment. la technologie de mise en cache est particulièrement importante. Cet article expliquera comment utiliser la technologie de mise en cache Redis pour optimiser la lecture et l'écriture de bases de données d'applications PHP.

1. Qu'est-ce que Redis ?

Redis est simplement un système de stockage clé-valeur. Contrairement à d'autres systèmes de stockage clé-valeur, Redis prend en charge le stockage de données de plusieurs types de données (chaînes, listes, ensembles, ensembles ordonnés, tables de hachage) et fournit un riche ensemble de commandes d'opération. Redis est une base de données de stockage en mémoire qui prend également en charge la persistance des données sur le disque et peut remplacer complètement le système de cache traditionnel.

2. Pourquoi utiliser Redis ?

Le flux d'une application conventionnelle est généralement que l'application lit les données de la base de données, puis présente les données à l'utilisateur sous une forme ou une autre. Dans ce processus, la tâche la plus longue est la lecture des données de la base de données. Le cache Redis peut nous aider à mettre en cache une partie des données dans la mémoire, afin que des lectures répétées puissent être obtenues directement à partir du cache, évitant ainsi les requêtes fréquentes sur la base de données, réduisant la pression sur la base de données, améliorant l'efficacité de la lecture et de l'écriture, et réduisant ainsi le coût du système, le temps de réponse et améliorer le débit global du système.

3. Comment utiliser Redis dans les applications PHP ?

Avant d'utiliser Redis, nous devons d'abord installer Redis. Le processus d'installation de Redis et d'extension PHP ne sera pas détaillé ici. Nous supposons que les lecteurs ont déjà installé les extensions Redis et PHP. Nous expliquons ensuite comment utiliser Redis dans les applications PHP.

  1. Cache de données

Dans l'application, les données du cache peuvent être définies et obtenues via les commandes set et get de Redis.

//设置缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);  //连接到Redis
$redis->set('name', 'redis cache'); //设置缓存
$redis->expire('name', 3600);       //设置过期时间

//获取缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); //连接到Redis
$name = $redis->get('name');         //获取缓存
if($name){                           //判断缓存是否存在
    echo $name;
}else{                               //不存在则从数据库中读取数据
    $name = 'get data from database';
    $redis->set('name', $name);
    $redis->expire('name', 3600);
    echo $name;
}

Dans le code ci-dessus, nous déterminons d'abord s'il y a des données de cache dans Redis. S'il y en a, récupérez-les directement. Sinon, récupérez-les à partir de la base de données, définissez le cache et définissez le délai d'expiration.

  1. Opération par lots de données mises en cache

Parfois, nous devons mettre en cache plusieurs éléments de données à la fois. Les commandes multi et exec de Redis nous permettent d'exploiter par lots les données mises en cache.

//批量设置缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->multi();
$redis->set('name1', 'cache1');
$redis->set('name2', 'cache2');
$redis->set('name3', 'cache3');
$redis->exec();

//批量获取缓存
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->multi();
$redis->get('name1');
$redis->get('name2');
$redis->get('name3');
$result = $redis->exec();

Dans le code ci-dessus, nous pouvons utiliser les commandes multi et exec pour effectuer plusieurs opérations de configuration du cache ou d'obtention de plusieurs caches.

  1. Séparation du cache en lecture et en écriture

Dans les applications, certaines opérations sur les données sont fréquentes et ne nécessitent pas une intégrité élevée des données, comme l'état de connexion, etc. Vous pouvez envisager de mettre en cache ces données dans Redis, ainsi que des données plus critiques telles que les utilisateurs. Le nom, le mot de passe, l'e-mail, etc. peuvent être stockés dans la base de données. L'avantage est d'améliorer l'efficacité de la lecture et de l'écriture et n'entraînera pas d'incohérence des données de la base de données en raison de modifications des données mises en cache.

//缓存数据
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('login:userid', '1');       //将登录状态存储到Redis中
$redis->expire('login:userid', 3600);

//读取数据
//先从Redis中读取
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$loginUserId = $redis->get('login:userid');
//如果Redis中不存在,则从数据库中读取
if(empty($loginUserId)){
    $sql = "select id from user where username='admin'";
    $result = $mysqli->query($sql)->fetch_assoc();
    $loginUserId = $result['id'];
    //将读取到的数据存储到Redis缓存中
    $redis->set('login:userid', $loginUserId);
    $redis->expire('login:userid', 3600);
}

Dans le code ci-dessus, nous stockons le statut de connexion de l'utilisateur dans Redis. Lors de la lecture, il est d'abord lu depuis le cache Redis. S'il n'existe pas dans Redis, il est lu depuis la base de données.

4. Résumé

L'utilisation de la technologie de mise en cache Redis peut considérablement améliorer les performances de lecture et d'écriture des applications PHP, réaliser un découplage entre les applications et les bases de données, réduire le temps de réponse du système et améliorer l'expérience utilisateur. Lorsque vous utilisez le cache Redis, vous devez faire attention à l'ordre d'écriture et de lecture et définir la période de validité des données mises en cache en fonction de la situation réelle. Il convient de noter que dans des situations de forte concurrence, de distribution, d'avalanche de cache, etc., les technologies et méthodes d'exploitation et de maintenance correspondantes doivent être combinées pour garantir la stabilité et la fiabilité du système de 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