Laravel est un framework de développement PHP populaire. Il a remporté le titre de framework PHP le plus populaire dans "The 2020 Laravel Developers Survey". Parmi eux, la fonction Redis de Laravel est largement utilisée, ce qui peut aider les développeurs à réaliser une mise en cache et un traitement de file d'attente efficaces.
Redis est un système de stockage de données en mémoire open source, qui est une base de données NoSQL similaire aux paires clé-valeur. La caractéristique de Redis est qu'il peut prendre en charge une variété de structures de données, telles que des chaînes, des listes, des hachages, des ensembles, des ensembles ordonnés, etc. Il présente également les avantages de hautes performances, de haute disponibilité, d'évolutivité et de facilité d'utilisation. est très populaire dans le développement et a été largement utilisé. Ensuite, nous présenterons en détail l’utilisation de Redis dans Laravel.
Configuration de Redis
Pour utiliser Redis dans Laravel, vous devez d'abord le configurer. Ouvrez le fichier .env et recherchez l'élément de configuration suivant :
CACHE_DRIVER=file SESSION_DRIVER=file REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
Parmi eux, CACHE_DRIVER représente le pilote de cache. La valeur par défaut est file. Ici, nous devons le changer en Redis, c'est-à-dire :
CACHE_DRIVER=redis
SESSION_DRIVER. vrai. REDIS_HOST représente l'adresse du service Redis, qui est par défaut 127.0.0.1 de la machine locale. REDIS_PASSWORD représente le mot de passe de Redis. S'il n'est pas disponible, il doit être défini sur null. REDIS_PORT indique le port sur lequel le service Redis écoute et la valeur par défaut est 6379.
Afin de tester l'utilisation, le Redis que nous utilisons ici est installé sur la machine locale sans définir de mot de passe. Si vous utilisez Redis distant, vous devez modifier REDIS_HOST et REDIS_PORT, ainsi que définir REDIS_PASSWORD.
Mise en cache avec Redis
La mise en cache avec Redis dans Laravel est très simple. Il nous suffit d'utiliser la classe Cache pour accéder au cache, puis de définir son pilote sur Redis, afin que Redis puisse être utilisé pour la mise en cache.
Il existe de nombreuses façons de mettre en cache une valeur à l'aide de Redis. Ici, nous introduisons d'abord la mise en cache d'une valeur.
use IlluminateSupportFacadesCache; Cache::store('redis')->put('key', 'value', $seconds);
Le code ci-dessus accède au cache Redis via Cache::store('redis'), puis met en cache une paire clé-valeur à l'aide de la méthode put. Parmi eux, $seconds représente la période de validité du cache en secondes. Lorsque la valeur de $seconds est nulle, le cache n'expirera pas.
La fonction de la mise en cache d'une valeur est de pouvoir obtenir directement la valeur dans le futur. Nous pouvons utiliser la classe Cache de Laravel pour obtenir cette valeur :
use IlluminateSupportFacadesCache; $value = Cache::store('redis')->get('key');
Le code ci-dessus accède au cache Redis via Cache::store('redis'), et la méthode get obtient la valeur correspondant à la clé.
Lorsque nous devons supprimer un cache, nous pouvons utiliser le code suivant :
use IlluminateSupportFacadesCache; Cache::store('redis')->forget('key');
Le code ci-dessus accède au cache Redis via Cache::store('redis'), et la méthode oublier supprime le correspondant cache.
Pour déterminer si un cache existe, nous pouvons utiliser le code suivant :
use IlluminateSupportFacadesCache; if (Cache::store('redis')->has('key')) { // }
Le code ci-dessus accède au cache Redis via Cache::store('redis'), et la méthode has détermine si la valeur correspondant à la clé existe.
Utilisez Redis pour le traitement des files d'attente
Pour utiliser Redis pour le traitement des files d'attente dans Laravel, vous devez d'abord introduire un fournisseur de services de file d'attente. Ouvrez le fichier config/app.php, recherchez le tableau des fournisseurs et ajoutez le code suivant :
'providers' => [ // ... IlluminateQueueQueueServiceProvider::class, IlluminateRedisRedisServiceProvider::class, // ... ],
Ensuite, nous devons configurer la connexion à la file d'attente. Ouvrez le fichier config/queue.php et modifiez les éléments de configuration suivants :
'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 90, 'block_for' => null, ], ],
Parmi eux, driver signifie utiliser la connexion du pilote Redis ; file d'attente signifie le nom de file d'attente utilisé ; se produit, en unités de secondes ; block_for représente le temps de blocage lors de l'acquisition des tâches, en secondes.
Ensuite, nous pouvons utiliser le code suivant pour pousser la tâche vers la file d'attente :
use IlluminateSupportFacadesQueue; Queue::push(new SendEmailJob($user));
Le code ci-dessus utilise la méthode Queue::push pour pousser un SendEmailJob vers la file d'attente par défaut. Parmi eux, SendEmailJob est une classe de tâches personnalisée qui peut implémenter une logique plus complexe.
Après avoir poussé la tâche dans la file d'attente, nous devons utiliser la commande suivante pour exécuter la tâche :
php artisan queue:work
La commande ci-dessus démarrera un processus pour exécuter la tâche de file d'attente. Si votre serveur dispose de plusieurs cœurs de processeur, vous pouvez augmenter la vitesse de traitement des tâches en ajoutant l'option --daemon pour démarrer plusieurs processus.
La fonction Redis de Laravel est très puissante et une excellente mise en cache et traitement des files d'attente peut être obtenue grâce à la coopération avec Redis. Lorsqu'il s'agit d'activités à forte concurrence et complexes, l'utilisation du cache et de la file d'attente Redis peut améliorer considérablement les performances et la stabilité du système. Cet article présente brièvement l'utilisation de Redis dans Laravel et espère être utile pour votre travail de développement.
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!