Maison  >  Article  >  base de données  >  Explication détaillée de l'application de Redis en PHP

Explication détaillée de l'application de Redis en PHP

WBOY
WBOYoriginal
2023-06-20 13:51:071358parcourir

Redis est un système de stockage clé-valeur hautes performances largement utilisé dans des scénarios tels que la mise en cache distribuée, les files d'attente de messages et les statistiques en temps réel. PHP est un langage de script largement utilisé et occupe une place importante dans le domaine du développement web. En raison de l'efficacité de Redis et de la popularité de PHP, de nombreuses excellentes applications peuvent être implémentées en combinant Redis avec PHP. Cet article présentera en détail l'application de Redis en PHP et fournira des exemples de code pour aider les lecteurs à mieux comprendre.

1. Préparation de l'environnement
Avant d'utiliser Redis, nous devons installer et configurer les extensions Redis et PHP. Voici la méthode d'installation basée sur le système Ubuntu :

  1. Installez Redis

sudo apt-get install redis-server

  1. Installez l'extension PHP
    Elle peut être installée via le code source, comme indiqué ci-dessous :

git clone https://github.com/phpredis/phpredis.git
cd phpredis
phpize
./configure
make && make install

Vous pouvez également utiliser PECL pour installer :

pecl install redis

Une fois l'installation terminée , vous devez l'installer dans php.ini Ajouter une configuration étendue :

extension=redis.so

2. Utilisation de base de Redis
Voici quelques commandes de base et méthodes d'utilisation de Redis :

  1. Connexion à Redis

Pour vous connecter à Redis, vous devez utiliser la méthode connect de la classe Redis et transmettre l'IP et le numéro de port du service Redis.

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

  1. Stockage des données

Vous pouvez utiliser la méthode set de Redis pour définir la paire clé-valeur , comme indiqué ci-dessous :

$redis->set('name', 'Tom');

Vous pouvez également utiliser la méthode mset pour définir plusieurs paires clé-valeur :

$redis->mset(array ('name' => 'Tom', 'age' => '18'));

  1. Obtention de données

Vous pouvez utiliser la méthode get de Redis pour obtenir la valeur correspondant à une clé, comme indiqué ci-dessous :

$name = $redis-> ;get('name');

Vous pouvez également utiliser la méthode mget pour obtenir les valeurs correspondant à plusieurs clés :

$result = $redis->mget (array('name', 'age'));

  1. Pour supprimer des données

Vous pouvez utiliser la méthode del de Redis pour supprimer la valeur correspondant à une clé, comme indiqué ci-dessous :

$redis-> del('name');

Vous pouvez également utiliser la méthode unlink pour supprimer la valeur correspondant à plusieurs clés. Value:

$redis->unlink(array('name', 'age'));

3. Application de Redis en PHP

  1. Cache

Redis, en tant que cache mémoire efficace, peut améliorer considérablement les performances des applications Web. Voici un exemple de code pour Redis comme cache en PHP.

1.1. Stockage des données du cache de page

Il est très simple d'utiliser Redis pour stocker les données du cache de page dans votre propre framework. Vous pouvez implémenter les méthodes set, get, flush et autres dans une classe selon vos besoins, puis les appeler là où le cache de la page doit être stocké via le code suivant :

$redis_cache = new RedisCache();
if(!$redis_cache ->get( $cache_key)){

// 数据未存储在Redis中,需要从数据库中获取数据
$data = $db->query('SELECT * FROM user where id = 1');
$redis_cache->set($cache_key, $data);

}
else{

// 数据已经存储在Redis中,直接从Redis中获取数据
$data = $redis_cache->get($cache_key);

}

1.2 Stockage des données de session

Pour une application Web hautement concurrente, le stockage des données de session est un problème très important. Lors de l'utilisation du mécanisme de session fourni avec PHP, de nombreuses opérations d'E/S seront générées, entraînant une diminution des performances de l'application Web. L'utilisation de Redis comme backend du stockage de session peut améliorer efficacement les performances des applications Web. Voici un exemple de code expliquant comment utiliser Redis comme stockage de session en PHP.

// Appelez le code suivant pour configurer la session lors de la phase d'initialisation du site :
session_name('PHPSESSID'); // Définissez le nom de la session
ini_set('session.save_handler', 'redis'); / Définir la méthode de stockage de session
ini_set('session.save_path', 'tcp://127.0.0.1:6379'); //Définir le chemin de stockage de session

  1. Message Queue

Les multiples structures de données de Redis peuvent être utilisé pour implémenter des files d’attente de messages. La file d'attente de messages est un mécanisme de communication asynchrone qui peut découpler la nature en temps réel de l'expéditeur et du destinataire. Lorsqu'un expéditeur envoie un message, le message est placé dans la file d'attente selon certaines règles de la file d'attente des messages. Le destinataire peut obtenir des messages de la file d'attente et les traiter à tout moment selon ses propres besoins. Voici un exemple de code expliquant comment implémenter une file d'attente de messages à l'aide de Redis en PHP.

//Code de l'expéditeur
$message = 'hello world';
$redis->lpush('message_queue', $message); //Écrire le message dans la file d'attente des messages

//Code du destinataire
$messages = $redis ->brpop('message_queue', 0); // Récupère les messages de la file d'attente
$message = $messages[1];

  1. Statistiques en temps réel

Redis peut être utilisé pour stocker et compter en temps réel données, par exemple, le PV et l'UV de la page, etc. Voici un exemple de code expliquant comment utiliser Redis en PHP pour implémenter des statistiques en temps réel.

// Code des statistiques PV
$redis->incr('page_view'); // Compteur +1
$page_views = $redis->get('page_view'); // Obtenez le nombre actuel de visites

/ / Code des statistiques UV
$user_id = $_COOKIE['user_id'];
$redis->sadd('user_view_set', $user_id); // Ajouter des utilisateurs à l'ensemble
$user_views = $redis-> scard ('user_view_set'); // Obtenez le nombre actuel de visiteurs uniques

4. Résumé
Redis est très flexible à utiliser en PHP et peut être utilisé pour implémenter de nombreuses excellentes applications. Lorsque vous utilisez Redis, vous devez comprendre les commandes de base et les structures de données de Redis, et faire des choix en fonction de scénarios d'application spécifiques. Dans le même temps, lorsque vous utilisez des extensions PHP, vous devez faire attention au processus d'installation et de configuration de l'extension pour éviter les problèmes.

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