Une introduction à Redis en PHP en utilisant 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
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
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
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(); }
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";
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!");
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
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
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(); }
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
- 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
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











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.

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 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 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.

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 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.

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.

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.
