Maison >développement back-end >tutoriel php >Une introduction à Redis en PHP en utilisant Predis

Une introduction à Redis en PHP en utilisant Predis

Christopher Nolan
Christopher Nolanoriginal
2025-02-27 09:08:11438parcourir

An Introduction to Redis in PHP using Predis

Points de base

  • Redis est un serveur de structure de données open source populaire qui propose bien plus que le stockage de valeurs de clé simple grâce à ses types de données intégrés. Il est largement utilisé par les grandes entreprises et peut être utilisé comme gestionnaire de session ou pour créer des systèmes de chat en ligne ou de réservation en direct.
  • redis et memcache effectuent de manière similaire en termes d'opérations de base, mais Redis fournit plus de fonctionnalités telles que la mémoire de mémoire et le disque, les commandes et transactions atomiques et les structures de données côté serveur.
  • Predis est une bibliothèque client PHP Redis flexible et entièrement fonctionnelle qui permet aux développeurs PHP d'interagir avec Redis à l'aide du code PHP. Il prend en charge une variété de fonctionnalités Redis, y compris les transactions, les pipelines et les grappes.
  • Les commandes
  • redis incluent SET, GET, existe (pour stocker et vérifier les informations temporaires), augmenter et diminuer (pour maintenir les compteurs), HSET, HGET, HINCRBY et HDEL (pour le traitement des types de données de hachage), et expirer, expirer, TTL et persistent (pour le traitement de la persistance des données).

Redis est un serveur de structure de données open source avec un ensemble de données de mémoire qui fonctionne bien plus qu'un simple stockage de valeurs de clé en raison de ses types de données intégrés. Il a été lancé en 2009 par Salvatore Sanfilippo et a augmenté rapidement en raison de sa popularité. Vous pouvez utiliser Redis comme gestionnaire de session, ce qui est particulièrement utile si vous utilisez une architecture multi-server derrière un équilibreur de charge. Redis dispose également d'un système de publication / souscripie, qui est idéal pour créer des systèmes de chat en ligne ou d'abonnement en direct. Pour la documentation et plus d'informations sur Redis et toutes ses commandes, visitez le site Web du projet redis.io. Il y a beaucoup de débats sur lesquels Redis ou Memcache sont meilleurs, mais comme le montrent les repères, ils fonctionnent presque les mêmes en termes d'opérations de base. Redis a plus de fonctionnalités que Memcache, telles que la mémoire et la persistance du disque, les commandes et transactions atomiques, et au lieu de journaliser chaque modification en disque, utilisez plutôt des structures de données côté serveur. Dans cet article, nous utiliserons la bibliothèque Predis pour en savoir plus sur certaines des commandes de base mais puissantes fournies par Redis.

Facile à installer

redis est facile à installer et de brèves instructions d'installation sont publiées sur la page de téléchargement du produit. D'après mon expérience, si vous exécutez Ubuntu, vous obtiendrez une erreur si vous n'avez pas installé TCL (il suffit d'exécuter Sudo apt-get install tcl). Après avoir installé Redis, vous pouvez exécuter le serveur:

<code class="language-bash">gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379</code>

Les bibliothèques de clients redis sont disponibles dans de nombreuses langues, qui sont répertoriées sur le site Web Redis, et chaque langue est généralement disponible en plusieurs langues! Pour PHP, il y en a cinq. Dans cet article, je vais utiliser la bibliothèque Predis, mais vous voudrez peut-être également connaître PHPredis, qui est compilé et installé comme module PHP. Si vous avez installé Git sur votre machine comme je l'ai fait, vous faites simplement cloner le référentiel Predis. Sinon, vous devez télécharger les archives zip et la décompresser.

<code class="language-bash">gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379</code>

Pour tout tester, créez un fichier test.php avec les suivants pour tester si vous pouvez vous connecter avec succès à un serveur redis en cours d'exécution à l'aide de Predis:

<code class="language-bash">gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git</code>

Lorsque vous l'exécutez, vous devriez voir le message "avec succès connecté à Redis".

en utilisant redis

Dans cette section, vous décriverez la plupart des commandes couramment utilisées fournies par Redis. Memcache a des équivalents pour la plupart des commandes, donc si vous connaissez Memcache, cette liste sera familière.

Définir, obtenir et existe

Les commandes les plus couramment utilisées dans Redis sont définies, get et existe. Vous pouvez utiliser ces commandes pour stocker et vérifier les informations temporaires qui seront accessibles plusieurs fois, généralement de manière clé. Par exemple:

<code class="language-php"><?php
require "predis/autoload.php";
PredisAutoloader::register();

// 由于我们连接到默认设置localhost
// 和6379端口,因此无需额外的
// 配置。如果不是,则可以将
// 方案、主机和端口指定为数组
// 传递给构造函数。
try {
    $redis = new Predis\Client();
/*
    $redis = new Predis\Client(array(
        "scheme" => "tcp",
        "host" => "127.0.0.1",
        "port" => 6379));
*/
    echo "Successfully connected to Redis";
}
catch (Exception $e) {
    echo "Couldn't connected to Redis";
    echo $e->getMessage();
}</code>
La méthode

set () est utilisée pour définir la valeur sur une clé spécifique. La méthode get () récupère la valeur de la clé et, dans ce cas, c'est "hello_world". La méthode existe () indique si la clé fournie est trouvée dans le magasin Redis. Les clés ne se limitent pas aux caractères alphanumériques et aux soulignements. Les éléments suivants seront également valides:

<code class="language-php"><?php
$redis->set("hello_world", "Hi from php!");
$value = $redis->get("hello_world");
var_dump($value);

echo ($redis->exists("Santa Claus")) ? "true" : "false";</code>

incr (incry) et dimin (décry)

Les commandes augmentent et diminuées sont utilisées pour incrémenter et diminuer les valeurs et sont un bon moyen de maintenir les compteurs. Augmenter et diminuer / diminuer leur valeur de 1; Voici un exemple:

<code class="language-php"><?php
$redis->set("I 2 love Php!", "Also Redis now!");
$value = $redis->get("I 2 love Php!");</code>

redis Type de données

Comme je l'ai mentionné précédemment, Redis a des types de données intégrés. Vous pourriez penser qu'il est bizarre d'avoir des types de données dans un système de stockage de valeurs de clé NOSQL comme Redis, mais cela est utile pour que les développeurs organisent des informations plus efficacement et effectuent des actions spécifiques, ce qui est généralement plus rapide lorsque les données sont typées. Le type de données de redis est:

  • String - Le type de données de base utilisé dans Redis, à partir de laquelle vous pouvez stocker un petit nombre de caractères dans le contenu de l'ensemble du fichier.
  • LISTE - Une liste simple de chaînes disposées dans l'ordre dans lequel leurs éléments sont insérés. Vous pouvez ajouter et supprimer des éléments de la tête et de la queue d'une liste, afin que vous puissiez utiliser ce type de données pour implémenter une file d'attente.
  • Hash - Carte des touches de chaîne et des valeurs de chaîne. De cette façon, vous pouvez représenter un objet (qui peut être considéré comme un objet JSON de profondeur à un niveau de niveau).
  • Collection - Une collection non ordonnée de chaînes où vous pouvez ajouter, supprimer et tester la présence de membres. La seule contrainte est que vous n'autorisez pas les membres en double.
  • Ensembles de tri - cas spécial des types de données de collecte. La différence est que chaque membre a un score associé qui est utilisé pour trier l'ensemble du plus petit score au score maximum.

Jusqu'à présent, je n'ai démontré que des chaînes, mais certaines commandes rendent tout aussi facile à utiliser les données d'autres types de données.

hset, hget et hgetall, hincrby et hdel

Ces commandes sont utilisées pour gérer le type de données de hachage de redis:

  • HSET - Définissez la valeur de la clé sur l'objet de hachage.
  • hget - Obtenez la valeur de la clé sur l'objet de hachage.
  • hincrby - incitez la valeur de la clé de l'objet de hachage en utilisant la valeur spécifiée.
  • hdel - Supprimer la touche de l'objet.
  • hgetall - Obtenez toutes les clés et les données de l'objet.

Voici un exemple pour démontrer son utilisation:

<code class="language-bash">gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379</code>

Résumé

Dans cet article, nous n'avons couvert qu'une courte liste de commandes Redis, mais vous pouvez afficher la liste complète des commandes sur le site Web de Redis. En fait, Redis offre bien plus qu'un simple remplacement de Memcache. Redis durera; il a une communauté croissante, un soutien pour toutes les grandes langues et fournit de la persistance et de la haute disponibilité grâce à la réplication maître-esclave. Redit est open source, donc si vous êtes un expert en langue C, vous pouvez débarquer son code source de GitHub et devenir contributeur. Si vous souhaitez en savoir plus que le site Web du projet, vous voudrez peut-être envisager de consulter deux excellents livres Redis, Redis Cookbook et Redis: The Definitive Guide.

Les questions fréquemment posées sur Redis avec Predis dans PHP

  • Quel est le but principal de l'utilisation de Predis et Redis dans PHP?

Predis est une bibliothèque client PHP Redis flexible et entièrement fonctionnelle. Il permet aux développeurs PHP d'interagir avec Redis en utilisant le code PHP, ce qui facilite l'utilisation de Redis dans les applications PHP. Predis fournit une API simple et intuitive pour gérer Redis, et elle prend en charge une variété de fonctions Redis, y compris les transactions, les pipelines et les grappes. En utilisant Predis, les développeurs PHP peuvent profiter de la puissance de Redis dans leurs applications sans avoir à faire face à la complexité d'interagir directement avec le serveur Redis.

  • Comment installer Predis dans PHP Project?

Predis peut être facilement installé dans des projets PHP à l'aide de Composer (outil de gestion de la dépendance de PHP). Vous pouvez installer Predis en exécutant la commande suivante dans le répertoire racine de votre projet: composer require predis/predis. Cette commande téléchargera et installera la dernière version stable de Predis et ses dépendances dans votre projet.

  • Comment utiliser Predis pour se connecter à un serveur Redis?

Pour vous connecter au serveur Redis à l'aide de Predis, vous devez créer une nouvelle instance de la classe prédisposée et transmettre les paramètres de connexion à son constructeur. Le paramètre de connexion peut être une chaîne représentant l'URI Redis Server ou un tableau associatif contenant des options de connexion. Voici un exemple:

<code class="language-bash">gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git</code>

Dans cet exemple, le client se connectera au serveur Redis exécuté sur le port localhost 6379.

  • Comment utiliser Predis pour exécuter les commandes redis?

Predis fournit des méthodes pour exécuter toutes les commandes redis. Ces méthodes sont nommées d'après la commande redis correspondante, qui acceptent les paramètres de commande comme paramètres. Par exemple, pour définir les paires de valeurs clés dans Redis, vous pouvez utiliser la méthode définie comme suit:

<code class="language-php"><?php
require "predis/autoload.php";
PredisAutoloader::register();

// 由于我们连接到默认设置localhost
// 和6379端口,因此无需额外的
// 配置。如果不是,则可以将
// 方案、主机和端口指定为数组
// 传递给构造函数。
try {
    $redis = new Predis\Client();
/*
    $redis = new Predis\Client(array(
        "scheme" => "tcp",
        "host" => "127.0.0.1",
        "port" => 6379));
*/
    echo "Successfully connected to Redis";
}
catch (Exception $e) {
    echo "Couldn't connected to Redis";
    echo $e->getMessage();
}</code>

Pour obtenir la valeur de la clé, vous pouvez utiliser la méthode GET:

<code class="language-bash">gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379</code>
  • Comment gérer les erreurs dans Predis?

Predis lancera une exception lorsque la commande redis échoue. Ces exceptions sont des instances de la classe prédisponseserverException ou de sa sous-classe. Vous pouvez prendre ces exceptions et gérer les erreurs dans votre code. Voici un exemple:

<code class="language-bash">gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git</code>

Dans cet exemple, si la commande set échoue, le bloc de capture sera exécuté et un message d'erreur sera imprimé.

(Les réponses aux autres questions sont similaires à la sortie précédente, sauf que le libellé est légèrement ajusté, et nous ne le répéterons pas ici)

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
Article précédent:PHP DOM: Travailler avec XMLArticle suivant:PHP DOM: Travailler avec XML