Comment travailler avec Redis dans une application Laravel?
Installez Redis et le package Predis via Composer ou utilisez l'extension PHP Redis, puis configurez les paramètres de connexion dans le fichier .env avec redis_host, redis_password et redis_port. 2. Utilisez la façade de cache pour les opérations de mise en cache comme Cache :: put (), Cache :: get () et Cache :: incmenment (), ou utilisez la façade redis pour l'accès direct à la commande redis tel que redis :: set (), redis :: get (), et redis :: expire (). 3. Définissez la queue_connection = redis dans .env pour utiliser Redis comme pilote de file d'attente, les travaux de répartition à l'aide de dispatche () et les traiter avec PHP Artisan Fitre: Work. 4. Set Broadcast_Driver = Redis, créez des événements implémentant SHIDBROADCAST et utilisez Laravel Echo sur le frontend pour écouter des événements en temps réel sur WebSockets. 5. Suivez les meilleures pratiques, y compris l'utilisation de clés structurées, la définition de TTL, la surveillance de Redis, la gestion des travaux échoués et la sécurisation de l'instance Redis en production; Laravel simplifie l'intégration Redis pour la mise en cache, la file d'attente et la diffusion lors de la configuration correctement.
Travailler avec Redis dans une application Laravel est simple grâce à la prise en charge intégrée de Laravel pour Redis en tant que pilote de cache et de session, ainsi qu'un outil puissant pour la file d'attente, la diffusion et la gestion des données en temps réel. Voici comment le configurer et l'utiliser efficacement.

1. Installer et configurer Redis
Tout d'abord, assurez-vous que Redis est installé sur votre système ou disponible via un service (comme Redis Labs, Docker ou votre fournisseur d'hébergement).
Installez l'extension PHP Redis
Laravel utilise l'extension phpredis
ou Predis
. Vous pouvez l'installer via PECL ou utiliser le package predis/predis
via Composer:

Le compositeur a besoin de Predis / Predis
Remarque: Si l'extension PHP Redis est installée (via PECL), Laravel l'utilisera à la place. Predis est un client PHP pur et fonctionne hors de la boîte.
Configurer Redis dans Laravel
Ouvrez .env
et définissez votre connexion redis:

Redis_host = 127.0.0.1 Redis_password = null Redis_port = 6379
Vérifiez config/database.php
pour vous assurer que les paramètres redis sont corrects sous la touche redis
.
2. Utilisez Redis pour la mise en cache
Le système de cache de Laravel prend en charge Redis hors de la boîte.
Stocker et récupérer des données
Utilisez la façade Cache
:
Utiliser illuminate \ support \ faades \ cache; // Stockez un article pendant 10 minutes Cache :: put ('utilisateur: 1', $ userdata, 600); // Récupérer l'article $ user = cache :: get ('utilisateur: 1'); // Stockage uniquement s'il n'existe pas Cache :: add ('utilisateur: 2', $ userdata, 10); // Incrément / diminution Cache :: incrément («visites»); Cache :: décrément («visites», 5);
Utilisez Redis directement
Pour plus de contrôle, utilisez la façade Redis
:
Utiliser illuminate \ support \ FACADES \ redis; Redis :: set («key», «valeur»); $ value = redis :: get ('key'); Redis :: hset ('hash: name', 'field', 'value'); Redis :: expire ('key', 300); // 5 minutes
Cela vous donne un accès complet aux commandes Redis.
3. Utilisez Redis comme pilote de file d'attente
Redis peut alimenter le système de file d'attente de Laravel pour les travaux de fond.
Configurer le pilote de file d'attente
Dans .env
:
Queue_connection = redis
Pousser les emplois à redis
Définissez un travail (en utilisant php artisan make:job ProcessPodcast
) et envoyez-le:
ProcessPodcast :: Dispatch ($ podcast);
Le travail sera stocké dans Redis sous les queues:default
(ou quelle que soit la file d'attente que vous spécifiez).
Exécutez le travailleur de la file d'attente
PHP Artisan Fitre: Travail
Cela écoute les travaux de la file d'attente Redis et traite.
4. Utilisez Redis pour la diffusion (événements en temps réel)
Laravel peut diffuser des événements sur WebSockets à l'aide de Redis et Laravel Echo Server ou Laravel Websockets.
Définir le pilote de diffusion
Dans .env
:
Broadcast_driver = redis
Créer un événement de diffusion
PHP Artisan Make: Event NewMessagePosted
Dans votre classe d'événements, implémentez ShouldBroadcast
:
classe NewMessagePosted implémente devrait Broadcast { Message public $; fonction publique __construct ($ message) { $ this-> message = $ message; } fonction publique Broadcaston () { retourner une nouvelle chaîne («chat»); } }
Écoutez avec Laravel Echo (frontend)
Installez Laravel Echo et Pusher JS:
Installation du NPM - Dev Laravel-Echo Pusher-Js
Dans resources/js/bootstrap.js
:
Importer l'écho de «Laravel-Echo»; window.echo = new echo ({ diffuseur: «redis», hôte: window.location.hostname ': 6001' });
Ensuite, écoutez l'événement:
Echo.channel ('chat') .Listen ('NewMessagePosted', (e) => { Console.log (E.Message); });
Vous aurez besoin d'un serveur WebSocket comme
laravel-websockets
ousocket.io
avec adaptateur Redis pour pont redis et websockets.
5. meilleures pratiques et conseils
- Utilisez des clés significatives : les clés de structure comme
users:1:profile
pour plus de clarté. - Réglez TTLS : envisagez toujours l'expiration pour éviter les ballonnements de mémoire.
- Production locale vs : utilisez Redis pour le cache / files d'attente dans la production; Fallback vers
array
ou le pilotedatabase
dans les tests. - Moniteur Redis : Utilisez des outils comme
redis-cli monitor
ou Redis Insight pour déboguer. - Gérer les échecs : lors de l'utilisation de Redis pour les files d'attente, configurez la manipulation de l'emploi échoué (
php artisan queue:failed-table
).
Travailler avec Redis dans Laravel devient une seconde nature une fois que vous obtenez les bases. Que vous cachez des requêtes lourdes, le traitement des travaux ou la création de fonctionnalités en temps réel, Redis s'intègre en douceur. N'oubliez pas de sécuriser votre instance Redis en production (utilisez des mots de passe, désactivez les commandes dangereuses, etc.).
Fondamentalement, Laravel fait le levage lourd - il vous suffit d'utiliser la bonne façade ou la configuration.
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

Undress AI Tool
Images de déshabillage gratuites

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.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

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



InstallaSpatie / Laravel-sitemAppackageusingComposerAndPublishitsConfigfileIfneeded.2.CreatearOteTogeNerateAnDerTeTheSiteMapDynamicly, soit parwritingittoafileorouttingxmldirectly.3.CustomzetheTetemapByAddingStatingDynamicurls, telasblogpost

Créer des modèles et la migration: utilisez PhPartisanMake: ModelPost-M pour générer des modèles et des fichiers de migration, définissez la structure du tableau et exécutez PhPartisanMigrate; 2. 3. Utiliser une association éloquente: définir l'appartenance et les relations HasMany dans le modèle, et utilisez la méthode avec () pour précharger les données associées pour éviter les problèmes de requête n 1; 4. Requête éloquente: utilisez le constructeur de requête pour des appels de chaîne tels que où

PolymorphicRelationshipSinLaravelallowamodellikEcommentorimagetobelongTomultipleModelsSuchaspost, vidéo, OruserUsingAingLinsEassociation.2.Thedatabaseschemarequires {relation} _idand {relation} _TypeinacoMn, eXEMPLIBudcuMeMment_idandcunable_typeinacoMnus, EXEMPLIBUDAMENTALE_DANDANMETALAGE_

LaravelforgeIsAserverAutomationPlatformHatSimplifiedPloyingLaravelapplicationsByManingInfrastructureAndDeployments Scripts.1.SetUpyourServerByConnectingacloudProvider, CréantaServerViaForge, andaddingyourrsitewithadomain, qui a automatimatique

Créer des répertoires tels que Resources / Lang / EN et Resources / Lang / es et définir des fichiers linguistiques messages.php; 2. Définissez le lieu de la langue par défaut et la langue alternative Fallback_locale dans config / app.php; 3. Utilisez l'application :: setLocale () pour changer dynamiquement les langues et combiner middleware pour les définir automatiquement en fonction des en-têtes de session ou de demande; 4. Ajouter le préfixe des paramètres régionaux pour implémenter des URL multilingues via des paquets de routage et générer des liens localisés dans des modèles; 5. Utilisez la fonction __ () ou l'instruction @lang pour appeler la traduction dans les contrôleurs et les vues, en soutenant le formulaire pluriel viaTrans_choice

Le système TaskSCheduling de Laravel vous permet de définir et de gérer les tâches de synchronisation via PHP, sans éditer manuellement le serveur Crontab, vous n'avez qu'à ajouter une tâche CRON qui est exécutée une fois par minute au serveur: * CD / PATH-TOT-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-TROject && phpartisanschedule: Exécuter >> / Dev / Null2> & 1, et ensuite les tâches sont configurées dans la méthode de la programmation de l'accident \ Kernl; 1. La définition des tâches peut utiliser des méthodes de commande, d'appel ou d'exécution, telles que $ calendrier-

Oui, YouCancreatEasocialNetworkwithLaravelByFollowingTheSestests: 1.SetUpLaraveLusingComposer, Configurethe.envfile, pertinentAuthenticationViabeze / Jetsstream / Fortify, andrunmigrationsforUserManagement.2

RunphPartisannotifications: TABLEAndMigrateToSetUpTheDatabase.2.CreateArtificationClassusushPartisanMake: NotificationNewMessageCeceivedAndDefineChannelsIntheViamethod, Dataintodatabase, AndrealBroadCastingIntoBroad.
