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

Une introduction à Redis en PHP en utilisant Predis

Feb 27, 2025 am 09:08 AM

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:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

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.

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:

<?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();
}
Copier après la connexion
Copier après la connexion
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:

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

echo ($redis->exists("Santa Claus")) ? "true" : "false";
Copier après la connexion

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:

<?php
$redis->set("I 2 love Php!", "Also Redis now!");
$value = $redis->get("I 2 love Php!");
Copier après la connexion

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:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:

<?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();
}
Copier après la connexion
Copier après la connexion

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

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
  • 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:

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Copier après la connexion
Copier après la connexion
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1673
14
Tutoriel PHP
1278
29
Tutoriel C#
1257
24
Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1? Apr 17, 2025 am 12:06 AM

Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables? Apr 17, 2025 am 12:25 AM

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Comment empêchez-vous l'injection SQL en PHP? (Déclarations préparées, APD) Apr 15, 2025 am 12:15 AM

L'utilisation de déclarations de prétraitement et l'APD dans PHP peut effectivement empêcher les attaques d'injection SQL. 1) Utilisez PDO pour vous connecter à la base de données et définir le mode d'erreur. 2) Créez des instructions de prétraitement via la méthode de préparation et transmettez des données à l'aide des espaces réservés et exécutez des méthodes. 3) Traitez les résultats de la requête et assurez la sécurité et les performances du code.

PHP: Gestion des bases de données et logique côté serveur PHP: Gestion des bases de données et logique côté serveur Apr 15, 2025 am 12:15 AM

PHP utilise les extensions MySQLI et PDO pour interagir dans les opérations de base de données et le traitement de la logique côté serveur, et traite la logique côté serveur via des fonctions telles que la gestion de session. 1) Utilisez MySQLI ou PDO pour vous connecter à la base de données et exécuter les requêtes SQL. 2) Gérer les demandes HTTP et l'état de l'utilisateur via la gestion de session et d'autres fonctions. 3) Utiliser les transactions pour assurer l'atomicité des opérations de base de données. 4) Empêcher l'injection de SQL, utiliser les connexions de gestion des exceptions et de clôture pour le débogage. 5) Optimiser les performances via l'indexation et le cache, écrivez du code très lisible et effectuez une gestion des erreurs.

Objectif de PHP: Construire des sites Web dynamiques Objectif de PHP: Construire des sites Web dynamiques Apr 15, 2025 am 12:18 AM

PHP est utilisé pour créer des sites Web dynamiques, et ses fonctions principales incluent: 1. Générer du contenu dynamique et générer des pages Web en temps réel en se connectant à la base de données; 2. Traiter l'interaction utilisateur et les soumissions de formulaires, vérifier les entrées et répondre aux opérations; 3. Gérer les sessions et l'authentification des utilisateurs pour offrir une expérience personnalisée; 4. Optimiser les performances et suivre les meilleures pratiques pour améliorer l'efficacité et la sécurité du site Web.

Choisir entre PHP et Python: un guide Choisir entre PHP et Python: un guide Apr 18, 2025 am 12:24 AM

PHP convient au développement Web et au prototypage rapide, et Python convient à la science des données et à l'apprentissage automatique. 1.Php est utilisé pour le développement Web dynamique, avec une syntaxe simple et adapté pour un développement rapide. 2. Python a une syntaxe concise, convient à plusieurs champs et a un écosystème de bibliothèque solide.

See all articles