Maison >cadre php >Laravel >utilisation redis de Laravel

utilisation redis de Laravel

王林
王林original
2023-05-21 09:01:072480parcourir

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.

Mise en cache d'une valeur

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.

Obtenir une valeur

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

Supprimer une valeur

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

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.

Poussez la tâche vers la file d'attente

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.

Exécuter les tâches de file d'attente

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.

Résumé

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!

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