Galerie de cartes mentales Rédis
Il s'agit d'une carte mentale sur Redis, avec une introduction détaillée et une description complète, j'espère qu'elle sera utile aux amis intéressés !
Modifié à 2023-12-21 17:36:42Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Rédis
affaires
définition
Une transaction est une opération d'isolement distincte. Toutes les opérations de la transaction seront sérialisées et exécutées dans l'ordre. L'exécution de la transaction ne sera pas interrompue par des commandes envoyées par d'autres terminaux du service client.
effet
Concaténez plusieurs commandes pour empêcher d'autres commandes de sauter dans la file d'attente
Commande
Touche REGARDER [touche ...]
Avant d'exécuter multi, exécutez d'abord watch key1 [key2], qui peut surveiller une (ou plusieurs) clés. Si cette (ou ces) clés sont modifiées par d'autres commandes avant l'exécution de la transaction, la transaction sera interrompue.
Multi
Les commandes saisies entreront dans la file d'attente des commandes, mais ne seront pas exécutées. Elles attendront que la commande Exec soit exécutée, puis les exécuteront dans l'ordre.
Exécutif
Exécuter la file d'attente des commandes
jeter
Supprimer la file d'attente des commandes
Gestion des erreurs de transactions
La formation de l'équipe est réussie et l'exécution est réussie. Toutes les commandes seront exécutées de manière ordonnée.
Si l'équipe est formée avec succès, sélectionnez Rejeter et toutes les commandes ne seront pas exécutées.
Si une erreur survient dans une commande de la file d'attente, toute la file d'attente sera annulée lors de l'exécution.
L'équipe est formée avec succès, mais une certaine commande échoue lors de l'exécution. À l'exception de la mauvaise commande, toutes les autres commandes seront exécutées.
Les transactions Redis ne sont pas atomiques
Trois caractéristiques majeures des transactions Redis
opérations de quarantaine distinctes
Toutes les commandes d'une transaction sont sérialisées et exécutées séquentiellement. Lors de l'exécution de la transaction, celle-ci ne sera pas interrompue par les demandes de commandes envoyées par d'autres clients.
Aucune notion de niveau d'isolement
Les commandes dans la file d'attente ne seront pas réellement exécutées tant qu'elles ne seront pas soumises, car aucune instruction ne sera réellement exécutée avant la soumission de la transaction.
Aucune garantie d'atomicité
Si une commande de la transaction ne parvient pas à s'exécuter, les commandes suivantes seront toujours exécutées sans restauration.
La différence entre les transactions Redis et les transactions Mysql (autour d'ACID)
Persistance
BDR
Configuration de base
dbfilename nom du fichier de configuration
sauvegarder
Combien d’opérations ont été effectuées en combien de secondes ?
Déclencher RDB
Déclencher automatiquement la sauvegarde
Bloquera le processus principal jusqu'à ce que la persistance RDB soit terminée
Sauvegarde manuelle : bgsave
Redis effectuera des opérations d'instantané de manière asynchrone en arrière-plan, et l'instantané peut également répondre aux demandes des clients.
Vous pouvez obtenir l'heure de la dernière exécution de l'instantané via lastsave.
Ne bloque pas le processus principal
Exécuter la commande flushall
L'exécution de la commande flushall générera également le fichier dump.rdb, mais il est vide et dénué de sens.
La commande flushdb ne génère pas le fichier dump.rdb
Quittez Redis normalement
Plus de configurations dans redis.conf
arrêt-écriture-sur-bgsave-erreur
Lorsque Redis ne peut pas écrire sur le disque, désactivez directement l'opération d'écriture de Redis. Je recommande oui
fichiers compressés rdbcompression
Si vous ne souhaitez pas consommer de CPU pour la compression, vous pouvez désactiver cette fonctionnalité. Je recommande oui.
rdbchecksum vérifie l'intégrité
Après avoir stocké l'instantané, vous pouvez également demander à Redis d'utiliser l'algorithme CRC64 pour la vérification des données.
Processus de persistance (instantané de mémoire)
Redis créera (fork) un processus enfant séparément pour la persistance. Il écrira d'abord les données dans un fichier temporaire une fois le processus de persistance terminé, ce fichier temporaire sera utilisé pour remplacer le dernier fichier persistant. Pendant tout le processus, le processus principal n'effectue aucune opération d'E/S, ce qui garantit des performances extrêmement élevées. Si une récupération de données à grande échelle est requise et que l'intégrité de la récupération des données n'est pas très sensible, la méthode RDB est plus efficace que la méthode AOF. .de haute efficacité. L'inconvénient de RDB est que les données après la dernière persistance peuvent être perdues.
La fonction de Fork est de copier un processus qui est le même que le processus actuel. Toutes les données (variables, variables d'environnement, compteur de programme, etc.) du nouveau processus ont les mêmes valeurs que le processus d'origine, mais il s'agit d'un processus complètement nouveau et sert de processus enfant du processus d'origine.
Avantage
Convient à la récupération de données à grande échelle
Plus adapté aux exigences d’intégrité et de cohérence des données qui ne sont pas élevées
Économiser de l'espace disque
Récupération rapide
Désavantages
Toutes les modifications du dernier instantané peuvent être perdues
AOF
introduire
Enregistrez chaque opération d'écriture sous la forme d'un journal. Les fichiers peuvent uniquement être ajoutés mais pas réécrits.
Non activé par défaut
en annexe seulement non
Lorsque AOF et RDB sont activés en même temps, AOF aura la priorité.
processus de persistance
La commande d'écriture demandée par le client sera ajoutée au tampon AOF.
Le tampon AOF synchronise les opérations avec le fichier AOF sur le disque conformément à la politique de persistance AOF.
Lorsque le fichier AOF dépasse la politique de réécriture ou est réécrit manuellement, le fichier AOF sera réécrit pour compresser la capacité du fichier AOF.
Lorsque le serveur Redis redémarrera, il chargera les opérations d'écriture dans le fichier AOF.
Réglage de la fréquence de synchronisation
appendfsync toujours
Toujours synchronisé, chaque écriture Redis sera immédiatement enregistrée dans le journal ; les performances sont médiocres mais l'intégrité des données est meilleure.
appendfsync toutes les secondes
Synchronisez chaque seconde, écrivez d'abord le journal dans la mémoire tampon du fichier AOF, puis écrivez le contenu du tampon sur le disque toutes les secondes. En cas de temps d'arrêt, les données de cette seconde peuvent être perdues.
appendfsync non
Redis ne se synchronise pas activement et laisse le timing de synchronisation au système d'exploitation.
Avantage
Le mécanisme de sauvegarde est plus robuste et les données ne sont pas facilement perdues
Fichiers journaux lisibles pour gérer les opérations d’erreur
Désavantages
Prend plus d'espace disque que RDB
Récupération lente
Si la lecture et l’écriture sont synchronisées à chaque fois, les performances seront sous pression.
Certains bugs rendent la récupération impossible.
Stratégie de suppression de clé Redis expirée
Redis utilise une combinaison de stratégies de suppression régulière et de suppression paresseuse.
Suppression périodique : de temps en temps, les clés avec un délai d'expiration sont sélectionnées au hasard, vérifiées pour voir si elles ont expiré et supprimées après l'expiration.
Répétez 10 fois toutes les secondes, sélectionnez au hasard 20 clés pour vérifier si elles ont expiré. Si 25 % des clés ont expiré, répétez ce comportement.
De nombreuses clés expirées seront manquées
Suppression paresseuse : lorsque les données expirent, elles ne seront pas traitées en premier. Lors de l'accès à la clé expirée, elle sera supprimée.
Échangez de l’espace contre du temps
Si un grand nombre de clés expirées sont manquées et ne sont pas vérifiées, la suppression différée ne sera pas effectuée. Un grand nombre de clés expirées s'accumuleront dans la mémoire, entraînant l'épuisement de la mémoire Redis. À ce stade, le mécanisme d'élimination de la mémoire sera utilisé.
réplication maître-esclave
qu'est-ce que
Une fois les données de l'hôte mises à jour, les données sont automatiquement synchronisées avec le mécanisme maître/esclave selon la politique. Le maître est responsable de l'écriture et l'esclave est responsable de la lecture.
Que pouvez-vous faire
Séparation de lecture et d'écriture, extension des performances
Reprise après sinistre et récupération rapide pour améliorer la disponibilité
Comment jouer
Démarrer plusieurs services Redis
Configurer la bibliothèque esclave
Exécuter l'esclave du port IP
Interroger les informations maître-esclave
réplication des informations
Situations courantes
Un maître et deux serviteurs
La machine esclave peut-elle écrire ? Est-il possible de régler ?
Il ne peut pas être écrit ni défini.
Que se passe-t-il après l'arrêt de l'hôte ? L'esclave est-il en position haute ou en veille ?
La machine esclave est en veille
Une fois que le maître est revenu et que le maître a ajouté un nouvel enregistrement, l'esclave peut-il toujours le copier en douceur ?
Peut
Que se passe-t-il après la panne d’une des machines esclaves ? Peut-elle suivre le rythme de la grande armée telle qu’elle est ?
Peut
Passer le flambeau
Les machines avec une double identité de maître et d’esclave peuvent-elles écrire des données ? ?
Non, tant que vous disposez de l’identité de l’esclave, vous ne pouvez pas écrire de données.
Principalement anti-client
Si la machine maître est en panne, vous pouvez transformer manuellement la machine esclave en machine maître.
Principe de copie
Une fois que l'esclave démarre et se connecte avec succès au maître, il enverra une commande de synchronisation.
Le maître reçoit la commande pour démarrer le processus de sauvegarde en arrière-plan et collecte toutes les commandes reçues pour modifier l'ensemble de données. Une fois le processus en arrière-plan terminé, le maître transférera l'intégralité du fichier de données RDB à l'esclave pour terminer une synchronisation complète.
Copie complète : après avoir reçu les données du fichier de base de données, le service esclave les enregistre et les charge en mémoire.
Réplication incrémentielle : le maître continue de transmettre toutes les nouvelles commandes de modification collectées à l'esclave afin de terminer la synchronisation.
Mais tant que le maître est reconnecté, une synchronisation complète (réplication complète) sera automatiquement effectuée
Mode sentinelle
Sentinel est un processus Redi exécuté en mode fonctionnalité et comporte trois tâches principales :
moniteur
Envoyez des commandes PING à toutes les bibliothèques maître-esclave pour vérifier si elles sont actives. Si elles ne répondent pas dans le délai spécifié, elles seront considérées comme hors ligne.
Subjectif hors ligne
Si la sentinelle constate que la réponse de la bibliothèque maître ou esclave à la commande PING expire, alors la sentinelle actuelle la marquera d'abord. Pour "subjectif hors ligne
Objectif hors ligne
Si N/2 1 sentinelles marquent la base de données principale comme subjectivement hors ligne, alors la base de données principale sera marquée comme « objectivement hors ligne »
Ce n'est que lorsque la base de données principale est marquée comme objectivement hors ligne que Sentinel élira une nouvelle base de données principale.
S'il n'y a qu'une seule sentinelle, et pour des raisons de réseau ou une pression excessive sur la base de données principale, la base de données principale ne répond pas à la sentinelle à temps et est marquée comme subjective hors ligne par la sentinelle. À ce moment, il n'y a qu'une seule sentinelle. , et une nouvelle base de données principale sera directement élue. S'il y a une sentinelle, la nouvelle base de données principale sera directement élue. Dans un cluster, plus de N/2 1 sentinelles doivent marquer la base de données principale comme subjective hors ligne, puis la base de données principale. sera marqué comme objectivement hors ligne, puis les sentinelles éliront une nouvelle base de données principale pour réduire les erreurs de jugement.
Choisissez le maître
Si la bibliothèque maître échoue, une nouvelle bibliothèque maître sera sélectionnée sur la machine esclave.
Le processus d’élection d’une nouvelle base de données principale
filtre
A partir de l'état en ligne actuel de la bibliothèque, il est également nécessaire de déterminer son état de connexion réseau précédent.
Score
Priorité de la bibliothèque esclave
Copier la progression depuis la bibliothèque
Numéro d'identification de la bibliothèque esclave
notifier
Envoyez les informations de la nouvelle bibliothèque maître à d'autres bibliothèques esclaves, laissez les autres bibliothèques esclaves établir des connexions avec la nouvelle bibliothèque maître et effectuez la réplication des données.
qu'est-ce que
La version automatique anti-client peut surveiller si l'hôte est défectueux en arrière-plan, en cas d'échec, il passera automatiquement de la base de données esclave à la base de données principale en fonction du nombre de votes.
Comment jouer
Créez un nouveau fichier sentinel.conf, le nom ne doit pas être faux
Configurer Sentinel et renseigner le contenu
moniteur sentinelle mymaster 127.0.0.1 6379 1
Parmi eux, mymaster est le nom du serveur de l'objet de surveillance et 1 est le nombre minimum de sentinelles qui acceptent de migrer.
Démarrer Sentinelle
/usr/local/bin
Exécutez redis-sentinel /myredis/sentinel.conf
Lorsque le maître raccroche, un nouveau maître sera sélectionné parmi les esclaves.
règles électorales
priorité
Par défaut dans redis.conf : priorité de réplication 100, plus la valeur est petite, plus la priorité est élevée.
Compenser
Le décalage fait référence aux données les plus complètes obtenues à partir de l'hôte d'origine.
runide
Après le démarrage de chaque instance Redis, un runid à 40 chiffres sera généré aléatoirement (obtenu et visualisé via le serveur d'informations)
grappe
Qu'est-ce qu'un cluster
Expansion horizontale de Redis
Si certains nœuds du cluster échouent ou ne peuvent pas communiquer, le cluster peut continuer à traiter les demandes de commandes.
Si la machine maître est en panne, la machine esclave sera automatiquement promue au rang de maître.
Configuration
modification de la configuration du cluster Redis
cluster-enabled oui active le mode cluster
cluster-config-file nodes-6379.conf définit le nom du fichier de configuration du nœud
cluster-node-timeout 15000 définit le temps de déconnexion du nœud. Passé ce délai (en millisecondes), le cluster bascule automatiquement entre maître et esclave.
démarrer
redis-cli --cluster create --cluster-replicas 1 192.168.11.101:6379 192.168.11.101:6380 192.168.11.101:6381 192.168.11.101:6389 192.168.11.101:6390 .168.11.101:6391
N'utilisez pas 127.0.0.1, veuillez utiliser une vraie adresse IP
Que sont les machines à sous
Un cluster Redis contient 16 384 emplacements de hachage, et chaque clé de la base de données appartient à l'un de ces 16 384 emplacements.
Pour les valeurs de clé qui ne se trouvent pas dans le même emplacement, les opérations multi-clés telles que mget et mset ne peuvent pas être utilisées.
Inconvénients du clustering
Le fonctionnement à plusieurs touches n'est pas pris en charge
Les transactions Redis multi-clés ne sont pas prises en charge. le script Lua n'est pas pris en charge
Plus complexe
Pourquoi un cluster nécessite au moins trois nœuds
Si un nœud est en panne et que plus de la moitié des nœuds pensent qu'il est en panne via le mécanisme de vote ping-pong, alors le cluster sera en panne. S'il n'y a que deux nœuds et qu'un nœud est en panne, l'autre nœud votera. Seulement 50%, mais la moitié d'entre eux, ce cluster n'échouera pas, donc au moins trois nœuds sont nécessaires
Pourquoi un cluster nécessite au moins six serveurs
Étant donné qu'un cluster nécessite au moins trois nœuds et que chaque nœud nécessite une machine de sauvegarde, un cluster nécessite au moins six serveurs.
Développement de connexion JAVA Jedis
Dépendance : <artifactId>jedis</artifactId>
Pool de connexions JedisPool
setBlockWhenExhausted
/S'il faut bloquer lorsque la connexion est épuisée, false signalera une exception, true bloquera jusqu'à l'expiration du délai, la valeur par défaut est true
setTestOnBorrow
Vérifiez si la connexion est désactivée lors de sa récupération dans le pool de connexions
Câblage automatique des objets JedisPool
Cinq principaux types de données
application
Utilisation de base
installation Manuel
redis-benchmark : un outil de test de performances qui peut être exécuté sur votre propre notebook pour voir les performances de votre notebook.
redis-check-aof : Réparer les fichiers AOF problématiques, rdb et aof seront discutés plus tard
redis-check-dump : correction du fichier dump.rdb problématique
redis-sentinel : utilisé par le cluster Redis
redis-server : commande de démarrage du serveur Redis
redis-cli : client, entrée d'opération
Fichier de configuration redis.conf
Commencer en arrière-plan
démoniser non à oui
Démarrez le serveur redis-server /myredis/redis.conf
Utilisez le client pour accéder à redis-cli
-p spécifie le port
-c mode cluster
Configuration liée au réseau
lier
Aucune écriture signifie un accès illimité à toutes les adresses IP.
mode protégémode protégé
Activé par défaut. Même si l'accès à partir de toutes les adresses IP est accepté, l'accès ne peut pas aboutir.
Numéro de port
Par défaut 6379
file d'attente de connexion TCP-backlog
délai d'expiration délai d'attente
Combien de temps faut-il pour qu'un client inactif se ferme ? 0 désactive cette fonction, c'est-à-dire que la connexion ne sera jamais déconnectée.
Détection du rythme cardiaque tcp-keepalive des clients
Si la valeur est 0, la détection keepalive ne sera pas effectuée.
Configuration commune
démoniser le thread démon
Le paramètre non par défaut est oui, ce qui est un processus démon et peut être démarré en arrière-plan.
pidfile L'emplacement où le fichier pid est stocké
niveau de journalisation
debug : imprimera et générera une grande quantité d'informations, adaptées à la phase de développement/test
verbeux : contient beaucoup d'informations moins utiles, mais n'est pas aussi déroutant que le niveau de débogage
remarque : Modérément verbeux, adapté aux environnements de production
avertissement : n'enregistrez que les messages d'avertissement très importants et critiques
nom du fichier journal
La valeur par défaut est la sortie standard du fichier journal
bases de données définit le nombre de bases de données
Le nombre de bases de données par défaut est 16 et la base de données sélectionnée par défaut est 0
limite
maxclients nombre maximum de connexions au serveur
La valeur par défaut est de 1 W pour les connexions. Lorsque la limite supérieure est atteinte, la connexion sera refusée.
mémoire maximale
Il est recommandé de le définir, sinon la mémoire sera pleine et provoquera un crash du serveur.
politique d'élimination de la mémoire maxmemory-policy
volatile-lru : utilisez l'algorithme LRU pour supprimer les clés, uniquement les clés dont le délai d'expiration est défini (les moins récemment utilisées) ;
volatile-ttl : supprimez les clés avec la plus petite valeur TTL, c'est-à-dire les clés qui expireront récemment
volatile-aléatoire : supprimez les clés aléatoires de l'ensemble expiré, uniquement les clés avec un délai d'expiration défini
allkeys-lru : utilisez l'algorithme LRU pour supprimer les clés de toutes les clés définies
allkeys-random : supprime les clés aléatoires de toutes les clés définies
noeviction : Pas de renvoi. Pour les opérations d'écriture, seules les informations d'erreur sont renvoyées
Limite d'E/S
io-threads-do-reads S'il faut activer le multithreading IO
La valeur par défaut est non. Si cette option est activée, remplacez-la par oui.
io-threads Nombre de threads IO
Il est recommandé de définir 2 ou 3 threads pour une machine à 4 cœurs, et 6 threads pour une machine à 8 cœurs. Le nombre de threads doit être inférieur au nombre de cœurs de la machine, et essayez de ne pas dépasser 8.
Redis est fermé
Arrêt d'une instance unique
arrêt de redis-cli
Arrêt de plusieurs instances
redis-cli -p 6379 arrêt
Multiplexage d'E/S multiples à thread unique
Redis6.0 introduit le multithreading
Base de données NoSQL
Qu'est-ce qu'une base de données NoSQL
Ne suit pas les normes SQL
Ne prend pas en charge l'ACIDE
atomicité
cohérence
Isolement
persistance
Dépasse de loin les performances de SQL
Scène applicable
Lecture et écriture hautement simultanées des données
Lire et écrire des données massives
Hautement évolutif pour les données
Scénario non utilisé
Besoin d'aide pour les transactions
Nécessite un stockage de requêtes structuré, le traitement de relations complexes et des requêtes ad hoc
Requête ad hoc : les utilisateurs peuvent sélectionner de manière flexible les conditions de requête en fonction de leurs propres besoins, et le système génère des rapports statistiques correspondants en fonction des sélections de l'utilisateur.
Redis cinq principaux types de données
Type de chaîne
augmenter
set <key><value>Ajouter une paire clé-valeur
setex <key><expiration time><value> Lors de la définition de la valeur de la clé, définissez le délai d'expiration en secondes.
setnx <key><value>Définir la valeur de la clé uniquement si la clé n'existe pas
mset <key1><value1><key2><value2>Définir une ou plusieurs paires clé-valeur en même temps
vérifier
get <key> Interroger la valeur clé correspondante
strlen <key> obtient la longueur de la valeur
mget <key1><key2><key3> Obtenez une ou plusieurs valeurs en même temps
getrange <key><start position><end position> Récupère la plage de valeurs, similaire à la sous-chaîne en Java, package front, package back
changement
augmenter <touche>
Augmentez la valeur numérique stockée dans la clé de 1
Ne peut fonctionner que sur des valeurs numériques. S'il est vide, la nouvelle valeur est 1.
décr <touche>
Décrémenter la valeur numérique stockée dans la clé de 1
Ne peut fonctionner que sur des valeurs numériques. S'il est vide, la nouvelle valeur est -1.
incrby / decrby <key><step>augmente ou diminue la valeur numérique stockée dans key. Taille de pas personnalisée.
supprimer
supprimer la clé
spécial
append <key><value> ajoute la <value> donnée à la fin de la valeur d'origine
getset <clé><valeur>
Remplacez l'ancien par le nouveau, définissez une nouvelle valeur et récupérez l'ancienne valeur en même temps
Le numéro de produit et le numéro de commande sont générés en utilisant les caractéristiques de nombre croissant de la chaîne.
Type de liste
augmenter
lpush/rpush <key><value1><value2><value3> .... Insérez une ou plusieurs valeurs à partir de la gauche/droite.
vérifier
lrange <key><start><stop>
Récupère les éléments selon l'indice d'index (de gauche à droite)
lindex <key><index>Obtenir les éléments selon l'indice d'index (de gauche à droite)
llen <key> obtient la longueur de la liste
changement
lset<key><index><value>remplace la valeur dont l'indice est index dans la clé de liste par value
supprimer
lrem <key><n><value>Supprimer n éléments égaux à la valeur de la gauche (de gauche à droite)
spécial
lpop/rpop <key>Émet une valeur depuis la gauche/droite. La valeur est dans la clé et la valeur est dans la clé.
rpoplpush <key1> <key2> crache une valeur du côté droit de la liste <key1> et l'insère dans le côté gauche de la liste <key2>.
linsert <key> avant <value><newvalue>Insérer <newvalue> après <value> pour insérer la valeur
Tels que la liste d'amis, la liste de fans, la file d'attente de messages, le classement des dernières actualités, etc. La méthode rpush équivaut à mettre le message dans la file d'attente, et lpop/rpop équivaut à retirer le message de la file d'attente pour le consommer.
Type de hachage
augmenter
hset <key><field><value> attribue <value> à la clé <field> dans la collection <key>
hmset <key1><field1><value1><field2><value2>... Définir les valeurs de hachage par lots
vérifier
hget <key1><field> récupère la valeur de la collection <key1> <field>
hmget <key1><field1> <field2>... Obtenir les valeurs de hachage par lots
hlen <key> obtient le nombre de valeurs de champ dans le hachage
hexists<key1><field>Vérifier si le champ donné existe dans la clé de la table de hachage
changement
hincrby <key><field><increment> ajoute un incrément à la valeur du champ dans la clé de la table de hachage (négatif signifie soustraction)
hsetnx <key><field><value> définit la valeur du champ field dans la clé de la table de hachage sur valeur si et seulement si le champ field n'existe pas
supprimer
hdel <key><field> supprime le <field> spécifié dans la collection <key>
spécial
hgetall <key> récupère tous les champs et valeurs dans
hkeys <key> répertorie tous les champs du jeu de hachage
hvals <key> répertorie toutes les valeurs du jeu de hachage
Utilisez un objet pour stocker des informations sur l'utilisateur, des informations sur le produit, des informations sur la commande, etc.
Type de jeu Z
augmenter
zadd <clé><score1><membre 1><score2><membre 2>…
Ajoutez un ou plusieurs éléments membres et leurs valeurs de score à la clé d'ensemble ordonnée
vérifier
zcard<key> renvoie le nombre d'éléments dans l'ensemble ordonné
zcount <key><min><max> compte l'ensemble, le nombre d'éléments dans l'intervalle de score
zrange <key><start><stop> [WITHSCORES] Trier de petit à grand
Renvoie les éléments de la clé d'ensemble ordonnée dont les indices sont compris entre <start><stop>
Avec WITHSCORES, les scores et les valeurs peuvent être renvoyés dans l'ensemble de résultats.
zrevrange <key><start><stop> [WITHSCORES] Trier du plus grand au plus petit
zrangebyscore clé min max [withscores] [nombre de décalage limite]
Renvoie tous les membres de la clé d'ensemble triée dont la valeur de score est comprise entre min et max (y compris égale à min ou max). Les membres de l’ensemble ordonné sont classés par ordre croissant de valeur de score (de petit à grand).
zrevrangebyscore key max min [withscores] [limit offset count] (notez que le paramètre est la taille)
Comme ci-dessus, mais disposés du plus grand au plus petit.
zrank <key><member> renvoie le rang du membre dans la clé d'ensemble ordonnée. Les membres de l’ensemble ordonné sont classés par ordre croissant de valeur de score (de petit à grand). Le classement est basé sur 0, c'est-à-dire que le membre avec la valeur de score la plus petite est classé 0.
zrevrank <key><member> Obtenez le classement des membres par ordre décroissant de valeur de score (du plus grand au plus petit).
changement
zincrby <key><increment><member > ajoute un incrément au score de l'élément
supprimer
zrem <key><member>Supprimer l'élément avec la valeur spécifiée dans la collection
spécial
Classement : par exemple, un site Web de vidéos doit classer les vidéos téléchargées par les utilisateurs.
Définir le type
augmenter
sadd <clé><valeur1><valeur2> .....
Ajoutez un ou plusieurs éléments membres à la clé de collection. Les éléments membres existants seront ignorés.
vérifier
smembers <key> retire toutes les valeurs de la collection
scard<key> renvoie le nombre d'éléments dans la collection
ismember<key> <value> Demander si la valeur dans la collection existe déjà
changement
supprimer
srem <key><value1><value2> .... Supprimer un élément de la collection
spécial
spop <key> crache une valeur aléatoire de la collection
smove <source><destination>value déplace une valeur de la collection d'une collection à une autre
sinter <key1><key2> renvoie l'élément d'intersection de deux ensembles.
union <key1><key2> renvoie les éléments d'union de deux ensembles.
sdiff <key1><key2> renvoie les éléments de différence des deux ensembles (ceux de key1, à l'exclusion de ceux de key2)
relevé de vote Amis communs, intérêts communs, balises de classification