Galerie de cartes mentales Rédis
Il s'agit d'une carte mentale sur Redis. Le contenu principal comprend : 8. Persistance Redis, 7. Transactions Redis, 6. Publier et s'abonner, 2. Démarrage, 1. Installer Redis 7.0, 5. Fichier de configuration Redis, 4. , Données Redis. tapez, 3. Commandes liées à la clé Redis (clé).
Modifié à 2024-03-28 15:31:48Cent 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
1. Installez Redis7.0
1. Téléchargez-le ; placez-le dans le répertoire opt.
https://redis.io/download/
2. Décompressez dans le répertoire opt ;
tar -zxvf redis-7.0.0.tar.gz
Après décompression
3. Entrez dans le répertoire redis-7.0.11
Installer gcc
miam, installez gcc-c
faire
faire installer
capture d'écran
4. Répertoire d'installation par défaut
/usr/local/bin
/usr/local sous Linux est similaire à C:\Program Files dans notre système Windows
Vérifier
redis-benchmark : outil de test de performances, exécutez cette commande après le démarrage du service pour voir les performances de votre ordinateur portable.
redis-check-aof : Réparer les fichiers AOF problématiques
redis-check-dump : correction du fichier dump.rdb problématique
redis-cli : client, entrée d'opération
redis-sentinel : utilisé par le cluster Redis
redis-server : commande de démarrage du serveur Redis
5. Modifiez le fichier de configuration redis.conf
2. Commencez
Entrez le répertoire d'installation par défaut de Redis
redis-server : commande de démarrage du serveur Redis
redis-cli : client, entrée d'opération
Si un mot de passe est défini : mot de passe d'authentification
Commencer en arrière-plan
Sauvegarder Redis.conf
démoniser non à oui
[root@ecs-353138 redis-7.0.0]# serveur redis ./redis.conf
Pour démarrer Redis, vous devez spécifier un fichier de configuration. Il n'y a pas de fichier de configuration explicite. En fait, redis lit le fichier de configuration interne par défaut, pas redis.conf dans le répertoire d'installation.
fermeture
Arrêt d'une instance unique : redis-cli -a arrêt par mot de passe
Arrêt multi-instance : spécifiez l'arrêt du port : redis-cli -p 6379 shutdown
Désinstaller Redis
1. Arrêtez le service Redis
2. Supprimez les fichiers liés à Redis dans le répertoire /usr/local/lib
3. Commandes liées aux clés Redis
clés*
Afficher toutes les clés de la bibliothèque actuelle
existe une clé
Déterminer si une certaine clé existe
tapez la clé
Vérifiez quel est le type de votre clé
supprimer la clé
Supprimer les données clés spécifiées
clé de dissociation
Sélectionnez la suppression non bloquante en fonction de la valeur
La commande Redis UNLINK est très similaire à la commande DEL : utilisée pour supprimer la clé spécifiée. Tout comme DEL, si la clé n'existe pas, elle est ignorée. Cependant, cette commande effectue la récupération de mémoire réelle dans un thread en dehors de la commande, elle n'est donc pas bloquante, contrairement à DEL. C'est de là que vient le nom de la commande : la commande UNLINK déconnecte simplement une clé de l'espace de clés. La suppression réelle aura lieu de manière asynchrone ultérieurement.
expirer la clé 10
10 secondes, définissez le délai d'expiration de la clé donnée
clé ttl
Vérifiez combien de secondes il reste pour expirer. -1 signifie qu'il n'expirera jamais et -2 signifie qu'il a expiré.
sélectionnez 0
Changer de base de données
dédimensionner
Afficher le nombre de clés dans la base de données actuelle
flushdb
Effacer la bibliothèque actuelle
chasse d'eau
Tuez toutes les bibliothèques
4. Type de données Redis
Cinq types de données de base
chaîne
Introduction
La chaîne est le type le plus basique de Redis, et une clé correspond à une valeur. Le type String est binaire sécurisé. Cela signifie que la chaîne Redis peut contenir n'importe quelle donnée. Par exemple, des images jpg ou des objets sérialisés. Une valeur de chaîne dans Redis peut atteindre 512 M.
Commandes courantes
définir la valeur clé NX
NX : lorsque la clé n'existe pas dans la base de données, vous pouvez ajouter la clé-valeur à la base de données XX : lorsque la clé existe dans la base de données, une valeur-clé peut être ajoutée à la base de données, ce qui s'exclut mutuellement avec les paramètres NX. EX : secondes d'expiration des touches PX : délai d'expiration de la clé en millisecondes, mutuellement exclusif avec EX
Ajouter des paires clé-valeur
Obtenir la clé
Interroger la valeur clé correspondante
ajouter une valeur clé
Ajoute la valeur donnée à la fin de la valeur d'origine
clé strlen
Obtenez la longueur de la valeur
valeur de la clé setnx
Définir la valeur de la clé uniquement si la clé n'existe pas
touche d'augmentation
Augmentez la valeur numérique stockée dans la clé de 1
touche de réduction
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 sera 1 ou -1.
augmenter / diminuer la taille du pas de touche
Augmente ou diminue la valeur numérique stockée dans la clé. Taille de pas personnalisée
mset clé1 valeur1 clé2 valeur2
Définir une ou plusieurs paires clé-valeur en même temps
récupérer la clé1, la clé2
Obtenez une ou plusieurs valeurs en même temps
msetnx clé1 valeur1 clé2 valeur2
Atomicité, si l’un échoue, ils échouent tous.
Définir une ou plusieurs paires clé-valeur en même temps si et seulement si toutes les clés données n'existent pas
clé getrange position de départ position de fin
Obtenez la plage de valeurs, similaire à la sous-chaîne en Java, au package avant, au package arrière
valeur de position de départ de la touche setrange
Remplacez la valeur de chaîne stockée dans la clé par la valeur, en commençant par la position de départ (l'index commence à 0)
valeur du délai d'expiration de la clé setex
Lors de la définition de la valeur de la clé, définissez le délai d'expiration en secondes.
valeur de clé getset
Remplacez l'ancien par le nouveau, définissez une nouvelle valeur et récupérez l'ancienne valeur en même temps
Structure de données
La structure de données de String est Simple Dynamic String (SDS).
liste
Introduction
Clé unique, valeurs multiples, triées par ordre d'insertion, vous pouvez ajouter un élément en tête (à gauche) ou en queue (à droite) de la liste.
Commandes courantes
lpush / rpush clé valeur1 valeur2
Insérer une ou plusieurs valeurs de gauche/droite
lpop/rpop
Crachez une valeur de gauche à droite. La valeur est dans la clé et la valeur est dans la clé.
rpoplpush key1 key2
crachez une valeur du côté droit de la liste key1 et insérez-la sur le côté gauche de la liste key2
touche de plage start stop
lâge 0 -1, signifie avoir tout
Récupère les éléments selon l'indice d'index (de gauche à droite)
index clé lindex
Récupère les éléments selon l'indice d'index (de gauche à droite)
clé Allen
Obtenir la longueur de la liste
insérer la clé avant la valeur newvalue
Insérez la valeur de newvalue devant value
lrem clé n valeur
Supprimer n valeurs de la gauche (de gauche à droite)
valeur d'index de clé lset
Remplacez la valeur dont l'indice est index dans la clé de liste par valeur
Structure de données
① La structure de données de List est quickList. ② Premièrement, lorsque les éléments de la liste sont petits, un stockage en mémoire continu sera utilisé. Cette structure est ziplist, qui est une liste compressée. ③ Lorsque la quantité de données est relativement importante, elles seront remplacées par une liste rapide.
ensemble
Introduction
La déduplication automatique et Set sont des collections non ordonnées de type chaîne. La couche inférieure est une table de hachage avec une valeur vide. La complexité de l'ajout, de la suppression et de la requête est O(1).
Commandes courantes
ajouter la clé valeur1 valeur2
Ajoutez un ou plusieurs éléments membres à la clé de collection. Les éléments membres existants seront ignorés.
clé des membres
Obtenez toutes les valeurs de l'ensemble
valeur clé sismember
Déterminez si la clé définie contient la valeur, il y a 1, il n'y a pas de 0
clé de cicatrice
Renvoie le nombre d'éléments dans la collection
srem âge valeur1 valeur2
Supprimer un élément de la collection
touche d'arrêt
cracher une valeur aléatoire de la collection
clé srandmember f
Prenez au hasard n valeurs de cet ensemble. ne sera pas supprimé de la collection
déplacer la valeur de destination source
Déplacer une valeur dans une collection d'une collection à une autre
fritté clé 1 clé 2
Renvoie l'élément d'intersection de deux collections
union clé1 clé2
Renvoie les éléments d'union de deux collections
clé sdiff1 clé2
Renvoie les éléments de différence des deux ensembles (ceux de key1, à l'exclusion de ceux de key2)
Structure de données
① La structure de données Set est un dictionnaire dict, et le dictionnaire est implémenté à l'aide d'une table de hachage. ② L'implémentation interne de HashSet en Java utilise HashMap, mais toutes les valeurs pointent vers le même objet. Il en va de même pour la structure définie de Redis. Elle utilise également une structure de hachage en interne et toutes les valeurs pointent vers la même valeur interne.
hacher
Introduction
Le hachage Redis est une collection de paires clé-valeur, une table de mappage de champs et de valeurs de type chaîne. Le hachage est particulièrement adapté au stockage d'objets.
Commandes courantes
valeur du champ clé hset
Attribuer une valeur à la clé de champ dans la collection de clés
hget champ clé
Récupérer la valeur du champ de collection key1
hmset clé1 champ1 valeur1 champ2 valeur2
Définir les valeurs de hachage par lots
champ clé hexists
Vérifiez si le champ donné existe dans la clé de la table de hachage
clé hkeys
Répertorier tous les champs de cet ensemble de hachage
clé hvals
Répertorier toutes les valeurs du jeu de hachage
incrément de champ clé secondaire
Ajoutez l'incrément 1 -1 à la valeur du champ dans la clé de la table de hachage
valeur du champ clé hsetnx
Définissez la valeur du champ champ dans la clé de la table de hachage sur valeur si et seulement si le champ champ n'existe pas
Structure de données
Il existe deux structures de données correspondant au type Hash : ziplist (liste compressée) et hashtable (table de hachage). Lorsque la longueur de la valeur du champ est courte et que le nombre est petit, utilisez ziplist, sinon utilisez hashtable
zset (ensemble ordonné)
Introduction
zset est très similaire à un ensemble ordinaire. C'est une collection de chaînes sans éléments répétés. La différence est que chaque membre de l'ensemble ordonné est associé à un score. Ce score est utilisé pour trier à partir du score le plus bas. fixé par le score le plus élevé. Les membres de l'ensemble sont uniques, mais les partitions peuvent être répétées
Commandes courantes
clé zadd score1 valeur1 score2 valeur2
Ajoutez un ou plusieurs éléments membres et leurs valeurs de score à la clé d'ensemble ordonnée
Touche zrange start stop [AVEC DES SCORES]
Renvoie les éléments de la clé de l'ensemble ordonné dont les indices sont compris entre start et stop. Avec WITHSCORES, les scores et les valeurs peuvent être renvoyés à l'ensemble de résultats.
clé zrangebyscore min max
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 clé max min
Changer pour trier du plus grand au plus petit
valeur d'incrément de clé zincrby
Ajouter un incrément au score de l'élément
valeur de la clé zrem
Supprimez l'élément avec la valeur spécifiée sous la collection
clé zcount min max
Comptez l'ensemble, le nombre d'éléments dans l'intervalle de fraction
valeur de la clé zrank
Renvoie le rang de la valeur dans l'ensemble, à partir de 0
Structure de données
Hachage, la fonction du hachage est d'associer la valeur de l'élément et le score de pondération pour garantir l'unicité de la valeur de l'élément. La valeur du score correspondante peut être trouvée via la valeur de l'élément.
Liste de sauts. Le but de la liste de sauts est de trier les valeurs des éléments et d'obtenir la liste des éléments en fonction de la plage du score.
Trois types de données avancés
Images bitmap
Les bitmaps en eux-mêmes ne sont pas un type de données, en fait c'est une chaîne (valeur-clé), mais ils peuvent opérer sur les bits de la chaîne.
HyperLogLog
Redis HyperLogLog est un algorithme utilisé pour les statistiques de cardinalité. L'avantage d'HyperLogLog est que lorsque le nombre ou le volume des éléments d'entrée est très important, l'espace nécessaire au calcul de la cardinalité est toujours fixe et très réduit.
Géospatial
GEO : Geographic, l'abréviation d'information géographique. Ce type correspond aux coordonnées bidimensionnelles de l'élément, qui correspondent à la latitude et à la longitude sur la carte. Sur la base de ce type, redis fournit des opérations courantes telles que le réglage de la longitude et de la latitude, la requête, la requête de plage, la requête de distance, le hachage de longitude et de latitude, etc.
5. Fichier de configuration Redis
Configuration liée au réseau
lier
Par défaut, bind=127.0.0.1 ne peut accepter que les demandes d'accès de cette machine.
mode protégé
Définir le mode de protection d'accès local sur non
port
Port, par défaut 6379
temps mort
Combien de secondes faut-il pour qu'un client inactif s'arrête, 0 signifie désactiver cette fonction. c'est-à-dire ne jamais fermer
TCP-keepalive
L'unité est la seconde. Si elle est définie sur 0, la détection Keepalive ne sera pas effectuée. Il est recommandé de la définir sur 60.
Une détection de battement de coeur pour accéder aux clients, une fois toutes les n secondes
GÉNÉRALgénéral
démoniser
Qu'il s'agisse d'un processus d'arrière-plan (démon), défini sur oui
fichier pid
L'emplacement où le fichier pid est stocké. Chaque instance générera un fichier pid différent.
niveau de journalisation
Pour l’environnement de production, choisissez avis ou avertissement.
Spécifiez le niveau de journalisation Redis prend en charge un total de quatre niveaux : débogage, détaillé, notification et avertissement.
fichier journal
Nom du fichier journal
bases de données 16
Définissez le nombre de bibliothèques. La valeur par défaut est 16. La base de données par défaut est 0. Vous pouvez utiliser la commande SELECT <dbid> pour spécifier l'ID de la base de données sur la connexion.
SÉCURITÉSécurité
définir le mot de passe
LIMITESlimites
les clients de Max
Définir le nombre de clients auxquels Redis peut se connecter en même temps
La valeur par défaut est 10 000 clients
Si cette limite est atteinte, redis rejettera les nouvelles demandes de connexion et répondra avec le « nombre maximum de clients atteints » à ces demandeurs de connexion.
mémoire maximale
politique de mémoire maximale
échantillons de mémoire maximale
6. Publiez et abonnez-vous
Que sont la publication et l'abonnement ?
Redis publier et s'abonner (pub/sub) est un modèle de communication de messages : l'expéditeur (pub) envoie des messages et les abonnés (sub) reçoivent des messages.
Le client s'abonne à la chaîne
Lorsqu'un message est publié sur ce canal, le message sera envoyé au client abonné
Implémentation des commandes
Ouvrez un client pour vous abonner à Channel1
abonnez-vous à la chaîne 1
Ouvrez un autre client et publiez le message bonjour sur canal1
publier la chaîne 1 bonjour
Le 2 renvoyé est le nombre d'abonnements
7. Transactions Redis
1. Définition
Une transaction Redis est une opération unique et isolée : toutes les commandes de la transaction sont sérialisées et exécutées dans l'ordre. 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.
La fonction principale des transactions Redis est de connecter plusieurs commandes en série pour empêcher d'autres commandes de sauter dans la file d'attente.
2. Multi, Exec, jeter
① À partir de l'entrée de la commande Multi, les commandes saisies seront entrées dans la file d'attente de commandes dans l'ordre, mais ne seront pas exécutées tant que Exec n'est pas entré, et Redis exécutera les commandes dans la file d'attente de commandes précédente dans l'ordre. ② Pendant le processus de formation d'équipe, vous pouvez abandonner la formation d'équipe en la rejetant.
Formation d'équipe réussie, soumission réussie
Une erreur a été signalée lors de la phase de formation de l'équipe et la soumission a échoué.
La formation de l'équipe a réussi et la soumission a été réussie ou échouée.
3. Gestion des erreurs de transaction
Si une commande dans la file d'attente signale une erreur, toutes les files d'attente seront annulées lors de l'exécution.
Si une erreur est signalée pour une commande pendant la phase d'exécution, seule la commande qui a signalé l'erreur ne sera pas exécutée et les autres commandes seront exécutées sans restauration.
4. Trois caractéristiques 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.
8. Persistance Redis
RDB (base de données Redis)
Qu'est-ce que c'est?
Écrivez un instantané de l'ensemble de données en mémoire sur le disque dans un intervalle de temps spécifié, également appelé instantané dans le jargon. Lorsqu'il est restauré, le fichier d'instantané est lu directement dans la mémoire.
Comment la sauvegarde est effectuée
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.
Fourchette
La fonction de Fork est de copier un processus identique au 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.
Dans un programme Linux, fork() générera un processus enfant qui est exactement le même que le processus parent, mais le processus enfant effectuera souvent des appels système d'exécution par la suite. Pour des raisons d'efficacité, Linux a introduit la « technologie de copie sur écriture ».
Généralement, le processus parent et le processus enfant partageront le même segment de mémoire physique. Ce n'est que lorsque le contenu de chaque segment de l'espace de processus change que le contenu du processus parent sera copié dans le processus enfant.
fichier dump.rdb
Configurez le nom du fichier dans redis.conf, la valeur par défaut est dump.rdb
Avantage
Convient à la récupération de données à grande échelle
Il est plus approprié de l'utiliser si les exigences en matière d'intégrité et de cohérence des données ne sont pas élevées.
Économiser de l'espace disque
Récupération rapide
insuffisant
Une sauvegarde est effectuée à un certain intervalle au cours du cycle de sauvegarde, donc si Redis tombe en panne de manière inattendue, toutes les modifications après le dernier instantané seront perdues.
Résumer
AOF (ajouter uniquement un fichier)
Qu'est-ce que c'est?
Enregistrez chaque opération d'écriture sous la forme d'un journal (sauvegarde incrémentielle), enregistrez toutes les instructions d'écriture exécutées par Redis (les opérations de lecture ne sont pas enregistrées), ajoutez uniquement des fichiers mais ne pouvez pas réécrire les fichiers, redis lira au début. Ce fichier reconstruit les données. En d'autres termes, lorsque Redis est redémarré, les instructions d'écriture seront exécutées d'avant en arrière en fonction du contenu du fichier journal pour terminer le travail de récupération de données.
Processus de persistance AOF
AOF n'est pas activé par défaut
AOF et RDB sont activés en même temps, qui Redis écoute-t-il ?
AOF et RDB sont activés en même temps, et le système prend les données AOF par défaut (les données ne seront pas perdues)
Avantage
Le mécanisme de sauvegarde est plus robuste et la probabilité de perte de données est plus faible
insuffisant
Prend plus d'espace disque que RDB
La restauration des sauvegardes est plus lente.
Résumer