Redis peut-il être utilisé comme file d'attente de messages ?
Redis peut être utilisé non seulement comme serveur de cache, mais également comme file d'attente de messages. Son type de liste prend intrinsèquement en charge son utilisation comme file d'attente de messages.
Étant donné que la liste Redis est implémentée à l'aide d'une liste doublement chaînée et enregistre les nœuds de tête et de queue, il est très difficile d'insérer des éléments des deux côtés de la liste. (Apprentissage recommandé : Tutoriel vidéo Redis)
Vous pouvez donc directement utiliser la liste de Redis pour implémenter la file d'attente de messages, avec seulement deux instructions simples : lpush et rpop ou rpush et lpop.
Cependant, il y a un problème avec les consommateurs de messages, c'est-à-dire qu'ils doivent constamment appeler la méthode rpop pour vérifier s'il y a des messages en attente dans la liste. Chaque appel établira une connexion, ce qui entraînera un gaspillage inutile. Peut-être utiliserez-vous Thread.sleep() et d'autres méthodes pour laisser le thread consommateur consommer à nouveau après un certain temps, mais cela pose deux problèmes :
1) Si la vitesse du producteur est supérieure à celle du consommateur vitesse de consommation, la file d'attente des messages La longueur continuera d'augmenter et occupera beaucoup d'espace mémoire au fil du temps.
2) Si le temps de veille est trop long, certains messages urgents ne peuvent pas être traités. Si le temps de veille est trop court, cela entraînera également une surcharge relativement importante sur la connexion.
Vous pouvez donc utiliser la commande brpop. Cette commande ne retournera que s'il y a un élément. S'il n'y a pas d'élément, elle se bloquera jusqu'à ce que le délai d'attente renvoie null. Vous pourrez ensuite exécuter Customer et effacer la console. Je peux voir que le programme n'a aucune sortie et est bloqué. Vous avez brpop ici. Ensuite, ouvrez le client Redis et entrez dans la liste des clients de commande pour voir qu'il existe actuellement deux connexions.
En plus de prendre en charge les files d'attente de messages, Redis fournit également un ensemble de commandes pour prendre en charge le mode publication/abonnement.
1) Publier
L'instruction PUBLISH peut être utilisée pour publier un message, le format est PUBLISH canal message
La valeur de retour indique le numéro d'abonnés au message.
2) Abonnement
L'instruction SUBSCRIBE permet de recevoir un message au format canal SUBSCRIBE
Vous pouvez voir que le mode abonnement a été entré après avoir utilisé l'instruction SUBSCRIBE, mais le message de publication n'a pas été reçu, car l'abonnement ne le recevra pas tant que le message n'aura pas été envoyé. Pour les autres commandes de ce mode, seules les réponses sont visibles.
Les réponses sont divisées en trois types :
1. S'il s'agit d'un abonnement, la deuxième valeur indique la chaîne à laquelle vous êtes abonné, et la troisième valeur indique de quel abonnement il s'agit. Canal ? (compris comme un numéro de série ?)
2 S'il s'agit d'un message, la deuxième valeur est le canal qui a généré le message, et la troisième valeur est le message
3. Pour le désabonnement, la deuxième valeur représente le canal désabonné et la troisième valeur représente le nombre actuel d'abonnements clients.
Vous pouvez utiliser la commande UNSUBSCRIBE pour vous désabonner. Si aucun paramètre n'est ajouté, toutes les chaînes auxquelles vous êtes abonné par la commande SUBSCRIBE seront désabonnées.
Redis prend également en charge l'abonnement aux messages basé sur des caractères génériques, à l'aide de la commande PSUBSCRIBE (pattern Subscribe).
Vous pouvez voir que la commande de publication renvoie 2 et que l'abonné a reçu le message deux fois. En effet, la commande PSUBSCRIBE peut s'abonner au canal à plusieurs reprises. Les chaînes souscrites à l'aide de la commande PSUBSCRIBE doivent également être désabonnées à l'aide de la commande PUNSUBSCRIBE. Cette commande ne peut pas se désinscrire des chaînes souscrites par SUBSCRIBE. De même, UNSUBSCRIBE ne peut pas se désinscrire des chaînes souscrites par la commande PSUBSCRIBE. Dans le même temps, le caractère générique de l’instruction PUNSUBSCRIBE ne sera pas étendu.
Résumé :
L'utilisation de la structure de données List de Redis peut facilement et rapidement créer une file d'attente de messages. En même temps, les instructions BRPOP et BLPOP fournies par Redis résolvent. le problème des appels fréquents aux Jedis. Le gaspillage de ressources causé par les méthodes rpop et lpop. De plus, Redis fournit des instructions pour le mode publication/abonnement, qui peuvent réaliser la transmission de messages et la communication inter-processus.
Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne Introduction au didacticiel d'utilisation de la base de données Redis pour apprendre !
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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Redis utilise des tables de hachage pour stocker les données et prend en charge les structures de données telles que les chaînes, les listes, les tables de hachage, les collections et les collections ordonnées. Redis persiste les données via des instantanés (RDB) et ajoutez les mécanismes d'écriture uniquement (AOF). Redis utilise la réplication maître-esclave pour améliorer la disponibilité des données. Redis utilise une boucle d'événement unique pour gérer les connexions et les commandes pour assurer l'atomicité et la cohérence des données. Redis définit le temps d'expiration de la clé et utilise le mécanisme de suppression paresseux pour supprimer la clé d'expiration.

Redis utilise cinq stratégies pour assurer le caractère unique des clés: 1. Séparation des espaces de noms; 2. Structure de données de hachage; 3. Définir la structure des données; 4. Caractères spéciaux des touches de chaîne; 5. Vérification du script LUA. Le choix de stratégies spécifiques dépend de l'organisation des données, des performances et des exigences d'évolutivité.

Pour afficher toutes les touches dans Redis, il existe trois façons: utilisez la commande Keys pour retourner toutes les clés qui correspondent au modèle spécifié; Utilisez la commande SCAN pour itérer les touches et renvoyez un ensemble de clés; Utilisez la commande info pour obtenir le nombre total de clés.

Le cluster Redis est un modèle de déploiement distribué qui permet une expansion horizontale des instances Redis, et est implémentée via la communication inter-nœuds, l'espace clé de la division des emplacements de hachage, l'élection du nœud, la réplication maître-esclave et la redirection de commande: communication inter-nœuds: la communication du réseau virtuel est réalisée via le bus de cluster. Slot de hachage: divise l'espace clé en emplacements de hachage pour déterminer le nœud responsable de la clé. Élection du nœud: au moins trois nœuds maîtres sont nécessaires et un seul nœud maître actif est assuré par le mécanisme électoral. Réplication maître-esclave: le nœud maître est responsable de la rédaction de demandes, et le nœud esclave est responsable des demandes de lecture et de la réplication des données. Redirection de commande: le client se connecte au nœud responsable de la clé et le nœud redirige les demandes incorrectes. Dépannage: détection des défauts, marquer la ligne et re

Pour afficher le numéro de version redis, vous pouvez utiliser les trois méthodes suivantes: (1) Entrez la commande Info, (2) Démarrez le serveur avec l'option - Version et (3) afficher le fichier de configuration.

Étapes pour résoudre le problème que Redis-Server ne peut pas trouver: Vérifiez l'installation pour vous assurer que Redis est installé correctement; Définissez les variables d'environnement redis_host et redis_port; Démarrer le serveur Redis Redis-Server; Vérifiez si le serveur exécute Redis-Cli Ping.

Utilisez l'outil de ligne de commande redis (Redis-CLI) pour gérer et utiliser Redis via les étapes suivantes: Connectez-vous au serveur, spécifiez l'adresse et le port. Envoyez des commandes au serveur à l'aide du nom et des paramètres de commande. Utilisez la commande d'aide pour afficher les informations d'aide pour une commande spécifique. Utilisez la commande QUIT pour quitter l'outil de ligne de commande.
