


Analyse des commandes liées au type de données list de Redis et comment les utiliser
Introduction à la liste
list est un tableau de chaînes trié par ordre d'insertion (en termes simples, il stocke toujours les chaînes). Vous pouvez ajouter un élément en tête (à gauche) ou en queue (à droite) d'une liste, et une liste peut contenir jusqu'à ^32-1 éléments (plus de 4 milliards d'éléments par liste).
La liste dans Redis est très similaire à la LinkedList en Java. La couche inférieure est une structure de liste chaînée. Les opérations d'insertion et de suppression de la liste sont très rapides, avec une complexité temporelle de 0(1), contrairement à la liste chaînée. Opérations d'insertion et de suppression de la structure du tableau nécessaires. Bien qu'il s'agisse encore apparemment d'une liste, l'implémentation sous-jacente des listes dans Redis ne se limite pas à de simples listes doublement liées.
Lorsque la quantité de données est faible, sa structure de stockage sous-jacente est une mémoire continue, appelée ziplist (liste compressée). Elle stocke tous les éléments étroitement ensemble et alloue une mémoire continue lorsque la quantité de données est importante. deviendra une structure de liste rapide (liste chaînée rapide).
Mais une simple liste chaînée est également imparfaite. Les pointeurs précédent et suivant de la liste chaînée occuperont plus de mémoire, gaspilleront de l'espace et augmenteront la fragmentation de la mémoire. Depuis Redis 3.2, Redis utilise la liste rapide de structure de données hybride (liste chaînée rapide), qui se compose d'une liste zip et d'une liste chaînée.
Commandes communes
Ajouter une commande
lpush key value
lpush key value
从左边插入元素(将一个或多个值插入到列表头部)
127.0.0.1:6379> lpush ids 1 (integer) 1 127.0.0.1:6379> lrange ids 0 -1 1) "1" 127.0.0.1:6379> lpush ids 2 (integer) 2 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1"
rpush key value
从右边插入元素(将一个或多个值插入到列表的尾部(最右边))
127.0.0.1:6379> rpush ids 3 (integer) 3 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "3"
linsert key BEFORE|AFTER pivot value
向某个元素前/后插入元素,返回结果为当前列表长度,注意列表不存在或者指定元素不存在列表中时,都将不执行任何操作。
//元素3前插入0 127.0.0.1:6379> linsert ids before 3 0 (integer) 4 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "0" 4) "3" //元素3后插入0 127.0.0.1:6379> linsert ids after 3 4 (integer) 5 127.0.0.1:6379> lrange ids 0 -1 1) "2" 2) "1" 3) "0" 4) "3" 5) "4"
查询命令
lrange key start end
获取列表中指定范围内的元素列表;若start值大于列表end值则返回空列表
如上已经展示过了
lindex key index
获取列表指定索引下标的元素
127.0.0.1:6379> lindex ids 0 "2" 127.0.0.1:6379> lindex ids -1 "4"
llen key
获取列表长度;列表不存在则返回0
127.0.0.1:6379> llen ids (integer) 5
弹出/删除命令
lpop key
从列表左侧弹出元素并返回头部元素
127.0.0.1:6379> lpop ids "2" 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0" 3) "3" 4) "4"
rpop key
从列表右侧弹出元素并返回尾部元素
127.0.0.1:6379> rpop ids "4" 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0" 3) "3"
lrem key count value
从列表中找到等于value的元素进行删除,根据count的不同分为三种情况:
count > 0,从表头开始向表尾,移除数量为count个元素;
count < 0,从表尾开始向表头,移除数量为count的绝对值个元素;
count = 0,移除表中所有与 value 相等的值
127.0.0.1:6379> lrem ids 0 3 (integer) 1 127.0.0.1:6379> lrange ids 0 -1 1) "1" 2) "0"
ltrim key start end
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
127.0.0.1:6379> ltrim ids 0 0 OK 127.0.0.1:6379> lrange ids 0 -1 1) "1"
修改命令
lset key index value
Insérer des éléments depuis la gauche (insérer une ou plusieurs valeurs en tête de liste)
127.0.0.1:6379> lset ids 0 0 OK 127.0.0.1:6379> lrange ids 0 -1 1) "0"
rpush key value
Insérer des éléments à partir de la droite (insérer une ou plusieurs valeurs à la queue (à l'extrême droite) de la liste)
rrreee
insert key AVANT|APRÈS la valeur pivot
transmettre à un élément / Après avoir inséré un élément, le résultat renvoyé est la longueur actuelle de la liste. Notez que si la liste n'existe pas ou si l'élément spécifié n'existe pas dans la liste, aucune opération ne sera effectuée.
rrreee
Commande de requêtelrange key start end
Comme indiqué ci-dessus
lindex key index
Obtenir l'élément à l'indice d'index spécifié de la listerrreee
llen key
Obtenir la longueur de la liste ; si la liste n'existe pas, renvoyez la commande 0
rrreee
lpop key
rrreeerpop key
rrreee
lrem key count value
Trouvez l'élément égal à la valeur dans la liste et supprimez-le. est divisé en trois situations selon le nombre :
count > 0, en commençant par la tête du tableau jusqu'à la fin du tableau, supprimez les éléments du nombre ;count count = 0, supprimez toutes les valeurs égales à la valeur dans le tableau 🎜rrreee🎜ltrim key start end
🎜Coupez une liste, c'est-à-dire laissez la liste uniquement conserve les éléments dans la plage spécifiée, et les éléments qui ne sont pas dans la plage spécifiée seront supprimés🎜rrreee🎜Modifier la commande🎜🎜lset key index value
🎜Modifiez la valeur de l'élément avec l'indice spécifié et définissez-le sur value🎜rrreee🎜Bloquer la commande contextuelle🎜🎜blpop key [key …] timeout🎜Supprimer et récupérer le premier élément de la liste Si la liste ne contient aucun élément, elle bloquera La liste attend que le délai d'attente soit écoulé (dans. secondes) ou un élément popable est trouvé🎜🎜brpop key [key …] timeout🎜Supprimez et récupérez le dernier élément de la liste Si la liste ne contient aucun élément, elle bloquera la liste jusqu'à ce que le délai d'attente expire ou qu'un élément popable soit trouvé. est trouvé. 🎜Démonstration : 🎜Ouvrez trois fenêtres de connexion Reids, la première exécute blpop, la seconde exécute brpop et la troisième exécute add : 🎜Vous pouvez voir que les fenêtres 1 et 2 ont été bloquées ici après l'exécution. Il n'y a aucun élément 🎜🎜🎜🎜🎜🎜🎜🎜La fenêtre 3 exécute l'ajout : lpush ids 1 2 3 4 5 6🎜Vous pouvez voir que les éléments correspondants apparaissent immédiatement dans les fenêtres 1 et 2 : 🎜🎜🎜🎜🎜🎜🎜 🎜Scénario d'application 🎜🎜File d'attente des messages : lpop et rpush (ou à l'inverse, lpush et rpop) peuvent implémenter la fonction de file d'attente 🎜🎜 comme la liste, la liste de commentaires et le classement dans le cercle d'amis : la commande lpush et la commande lrange peuvent implémenter la dernière fonction de liste, à chaque fois via la commande lpush Insérez de nouveaux éléments dans la liste, puis lisez la dernière liste d'éléments via la commande lrange. 🎜
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

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

L'utilisation des opérations Redis pour verrouiller nécessite l'obtention du verrouillage via la commande setnx, puis en utilisant la commande Expire pour définir le temps d'expiration. Les étapes spécifiques sont les suivantes: (1) Utilisez la commande setnx pour essayer de définir une paire de valeurs de clé; (2) Utilisez la commande Expire pour définir le temps d'expiration du verrou; (3) Utilisez la commande del pour supprimer le verrouillage lorsque le verrouillage n'est plus nécessaire.

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Redis, en tant que Message Middleware, prend en charge les modèles de consommation de production, peut persister des messages et assurer une livraison fiable. L'utilisation de Redis comme Message Middleware permet une faible latence, une messagerie fiable et évolutive.

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.
