Maison > Article > base de données > Les 50 questions et réponses d'entretien Redis les plus complètes de l'histoire
J'ai vu 50 questions d'entretien sur Redis sur Internet, mais aucune réponse n'a été donnée. Je cherchais également la réponse à cette question d'entretien Redis auparavant, je vais donc partager la réponse aujourd'hui. J'ai passé beaucoup de temps à compiler cet ensemble de questions et réponses d'entretien Redis, j'espère qu'il sera utile à tout le monde.
Après avoir compris ces questions d'entretien Redis, vous pouvez essentiellement devenir un maître des entretiens et battre l'intervieweur, haha~
1. c'est Redis ?
Redis est essentiellement une base de données en mémoire de type clé-valeur, un peu comme Memcached. L'intégralité de la base de données est chargée dans la mémoire pour le fonctionnement, et les données de la base de données sont vidées sur le disque dur pour être stockées. opérations asynchrones sur une base régulière. Parce qu'il s'agit d'une opération de mémoire pure, Redis offre d'excellentes performances et peut gérer plus de 100 000 opérations de lecture et d'écriture par seconde. Il s'agit de la base de données clé-valeur la plus rapide connue.
L'excellence de Redis ne réside pas seulement dans ses performances. Le plus grand charme de Redis est qu'il prend en charge la sauvegarde d'une variété de structures de données. De plus, la limite maximale d'une seule valeur est de 1 Go, contrairement à Memcached. n'économisant que 1 Mo de données, Redis peut Il est utilisé pour implémenter de nombreuses fonctions utiles, telles que l'utilisation de sa List pour créer une liste FIFO doublement liée, l'implémentation d'un service de file d'attente de messages léger et hautes performances et l'utilisation de son Set pour créer une file d'attente de messages hautes performances. système de balises, etc.
De plus, Redis peut également définir le délai d'expiration de la valeur-clé stockée, elle peut donc également être utilisée comme une version améliorée de memcached. Le principal inconvénient de Redis est que la capacité de la base de données est limitée par la mémoire physique et ne peut pas être utilisée pour une lecture et une écriture hautes performances de données massives. Par conséquent, les scénarios adaptés à Redis se limitent principalement à des opérations hautes performances et à des calculs de petites quantités. de données.
Recommandation spéciale : Questions d'entretien Redis 2020 (dernières)
2. Quels sont les avantages de Redis par rapport à Memcached ?
(1) Toutes les valeurs de memcached sont des chaînes simples, et redis, en remplacement, prend en charge des types de données plus riches
(2) redis est plus rapide que memcached Beaucoup plus rapide
(3) Redis peut conserver ses données
3 Quels types de données Redis prend-il en charge ?
String, List, Set, Sorted Set, hashs
4. Quelles ressources physiques Redis consomme-t-il principalement ?
Redis est une base de données hautes performances basée sur la mémoire --- reposant principalement sur la mémoire.
5. Quel est le nom complet de Redis ?
Serveur de dictionnaire à distance
6. Quelles stratégies d'élimination des données Redis propose-t-il ?
noeviction : renvoie une erreur lorsque la limite de mémoire est atteinte et que le client tente d'exécuter une commande qui utiliserait plus de mémoire (la plupart des commandes d'écriture, mais DEL et quelques exceptions)
allkeys-lru : essayez de recycler les clés les moins utilisées (LRU) afin de laisser de la place pour les données nouvellement ajoutées.
volatile-lru : essayez de recycler les clés les moins utilisées (LRU), mais uniquement les clés de l'ensemble expiré, afin qu'il y ait de la place pour le stockage des données nouvellement ajoutées.
allkeys-random : recyclez les clés aléatoires pour libérer de l'espace pour les données nouvellement ajoutées.
volatile-random : recyclez les clés aléatoires pour faire de la place aux données nouvellement ajoutées, mais uniquement pour les clés de l'ensemble expiré.
volatile-ttl : recyclez les clés de l'ensemble expiré et donnez la priorité aux clés avec des temps de survie (TTL) plus courts, afin qu'il y ait de l'espace pour le stockage des données nouvellement ajoutées.
7. Pourquoi Redis ne fournit-il pas officiellement une version Windows ?
Étant donné que la version actuelle de Linux est assez stable et compte un grand nombre d'utilisateurs, il n'est pas nécessaire de développer une version Windows, ce qui entraînerait des problèmes de compatibilité et d'autres problèmes.
8. Quelle est la capacité maximale qu'une valeur de type chaîne peut stocker ?
512M
9. Pourquoi Redis doit-il mettre toutes les données en mémoire ?
Afin d'obtenir la vitesse de lecture et d'écriture la plus rapide, Redis lit toutes les données dans la mémoire et écrit les données sur le disque de manière asynchrone. Redis présente donc les caractéristiques d'une vitesse rapide et d'une persistance des données. Si les données ne sont pas placées en mémoire, la vitesse des E/S du disque affectera sérieusement les performances de Redis. Aujourd'hui, alors que la mémoire devient de moins en moins chère, Redis deviendra de plus en plus populaire.
Si la mémoire maximale utilisée est définie, de nouvelles valeurs ne peuvent pas être insérées une fois que le nombre d'enregistrements de données atteint la limite de mémoire.
10. Comment mettre en œuvre la solution cluster Redis ? Quels sont les projets ?
1), twemproxy, le concept général est qu'il est similaire à une méthode proxy et que son utilisation n'est pas différente de celle d'un Redis ordinaire. Après avoir configuré plusieurs instances Redis sous celui-ci, lorsque vous l'utilisez, changez l'endroit où Redis a besoin. pour être connecté à Connect to twemproxy, il recevra la demande en tant que proxy et utilisera un algorithme de hachage cohérent pour transférer la demande vers le redis spécifique et renverra le résultat à twemproxy. Il est simple à utiliser (par rapport à Redis, il suffit de modifier le port de connexion), et c'est le premier choix pour étendre d'anciens projets. Problème : en raison de la pression de l'instance à port unique de twemproxy, après avoir utilisé un hachage cohérent, la valeur calculée change lorsque le nombre de nœuds Redis change et les données ne peuvent pas être automatiquement déplacées vers le nouveau nœud.
2), codis, la solution de cluster la plus couramment utilisée à l'heure actuelle, a fondamentalement le même effet que twemproxy, mais elle prend en charge la récupération des anciennes données de nœuds vers de nouveaux nœuds de hachage lorsque le nombre de nœuds change.
3) Le cluster fourni avec redis cluster3.0 se caractérise par son algorithme distribué non pas de hachage cohérent, mais par le concept d'emplacements de hachage et par sa propre prise en charge des nœuds esclaves de définition de nœuds. Consultez la documentation officielle pour plus de détails.
4. Implémenté au niveau de la couche de code métier, créez plusieurs instances Redis non liées au niveau de la couche de code, effectuez un calcul de hachage sur la clé, puis exploitez les données sur l'instance Redis correspondante. Cette méthode a des exigences relativement élevées pour le code de la couche de hachage. Les considérations incluent des solutions algorithmiques alternatives après une panne de nœud, la récupération automatique des scripts après un choc de données, la surveillance des instances, etc.
11. Dans quelles circonstances la solution de cluster Redis entraînera-t-elle l'indisponibilité de l'ensemble du cluster ?
Dans un cluster avec trois nœuds A, B et C, sans modèle de réplication, si le nœud B échoue, l'ensemble du cluster pensera qu'il y a un manque d'emplacements dans la plage 5501- 11 000. Non disponible.
12. Il y a 20 millions de données dans MySQL, mais seulement 200 000 données sont stockées dans Redis. Comment s'assurer que les données dans Redis sont des données chaudes ?
Lorsque la taille de l'ensemble de données de la mémoire Redis augmente jusqu'à une certaine taille, la stratégie d'élimination des données sera mise en œuvre.
13. Quels sont les scénarios appropriés pour Redis ?
(1) Cache de session L'un des scénarios les plus couramment utilisés pour utiliser Redis est le cache de session. L'avantage d'utiliser Redis pour mettre en cache les sessions par rapport à d'autres stockages (tels que Memcached) est que Redis assure la persistance. Lors de la maintenance d'un cache qui n'exige pas strictement de cohérence, la plupart des gens seraient mécontents si toutes les informations du panier d'achat de l'utilisateur étaient perdues. Le seraient-ils toujours ? Heureusement, à mesure que Redis s'est amélioré au fil des années, il est facile de comprendre comment utiliser correctement Redis pour mettre en cache les documents de session. Même la célèbre plateforme commerciale Magento propose des plug-ins Redis.
(2), Full Page Cache (FPC) En plus du jeton de session de base, Redis fournit également une plate-forme FPC très simple. Revenons au problème de cohérence, même si l'instance Redis est redémarrée, les utilisateurs ne verront pas de diminution de la vitesse de chargement des pages en raison de la persistance du disque. Il s'agit d'une grande amélioration, similaire au FPC local PHP. En prenant à nouveau Magento comme exemple, Magento fournit un plugin pour utiliser Redis comme backend de cache pleine page. De plus, pour les utilisateurs de WordPress, Pantheon dispose d’un très bon plug-in wp-redis, qui pourra vous aider à charger le plus rapidement possible les pages que vous avez parcourues.
(3) L'un des grands avantages de la file d'attente Redis dans le domaine des moteurs de stockage de mémoire est qu'elle fournit des opérations de liste et d'ensemble, ce qui permet à Redis d'être utilisé comme une bonne plate-forme de file d'attente de messages. Les opérations utilisées par Redis comme file d'attente sont similaires aux opérations push/pop de liste dans les langages de programmation locaux (tels que Python). Si vous recherchez rapidement « files d'attente Redis » dans Google, vous trouverez immédiatement un grand nombre de projets open source. Le but de ces projets est d'utiliser Redis pour créer de très bons outils back-end pour répondre à divers besoins de files d'attente. Par exemple, Celery a un backend qui utilise Redis comme courtier. Vous pouvez le visualiser à partir d'ici.
(4), le classement/compteur Redis implémente très bien l'opération d'incrémentation ou de décrémentation des nombres en mémoire. Les ensembles et les ensembles triés nous permettent également d'effectuer très simplement ces opérations. Redis fournit simplement ces deux structures de données. Donc, pour obtenir les 10 meilleurs utilisateurs de l'ensemble trié – appelons-les « user_scores », il suffit de procéder comme ceci : Bien sûr, cela suppose que vous le faites en fonction des scores de votre utilisateur. Tri croissant. Si vous souhaitez renvoyer l'utilisateur et son score, vous devez l'exécuter comme ceci : ZRANGE user_scores 0 10 WITHSCORESAgora Games est un bon exemple, implémenté dans Ruby, et ses classements utilisent Redis pour stocker les données. Vous pouvez le voir ici arriver. .
(5), publication/abonnement Dernier (mais certainement pas le moindre) est la fonction de publication/abonnement de Redis. Il existe en effet de nombreux cas d’usage pour la publication/abonnement. J'ai vu des gens l'utiliser dans les connexions de réseaux sociaux, comme déclencheur de scripts basés sur la publication/abonnement, et même pour créer des systèmes de discussion en utilisant la fonctionnalité de publication/abonnement de Redis ! (Non, c'est vrai, vous pouvez le vérifier).
14. Quels sont les clients Java pris en charge par Redis ? Lequel est officiellement recommandé ?
Redisson, Jedis, laitue, etc. Le Redisson est officiellement recommandé.
15. Quelle est la relation entre Redis et Redisson ?
Redisson est un client Redis de coordination distribuée avancé qui peut aider les utilisateurs à implémenter facilement certains objets Java (filtre Bloom, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map) dans un environnement distribué, ConcurrentMap, List , ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock, AtomicLong, CountDownLatch, Publish/Subscribe, HyperLogLog).
16. Quels sont les avantages et les inconvénients des Jedis et Redisson ?
Jedis est un client implémenté par Redis en Java. Son API fournit un support relativement complet pour les commandes Redis ; Redisson implémente une structure de données Java distribuée et évolutive. Par rapport à Jedis, ses fonctions sont relativement simples, ne prend pas en charge les opérations sur les chaînes et ne prend pas en charge les fonctionnalités Redis telles que le tri, les transactions, les pipelines et les partitions. L'objectif de Redisson est de promouvoir la séparation des préoccupations des utilisateurs de Redis, afin que les utilisateurs puissent se concentrer davantage sur le traitement de la logique métier.
17. Comment définir et vérifier le mot de passe pour Redis ?
Définir le mot de passe : config set requirepass 123456 Mot de passe d'autorisation : auth 123456
18. Parlez du concept de l'emplacement de hachage Redis ?
Le cluster Redis n'utilise pas de hachage cohérent, mais introduit le concept d'emplacement de hachage. Le cluster Redis dispose de 16 384 emplacements de hachage. Chaque clé est déterminée en prenant modulo 16 384 après vérification CRC16. Le nœud du cluster est responsable d’une partie de l’emplacement de hachage.
19. Quel est le modèle de réplication maître-esclave du cluster Redis ?
Afin de rendre le cluster toujours disponible lorsque certains nœuds échouent ou que la plupart des nœuds ne peuvent pas communiquer, le cluster utilise un modèle de réplication maître-esclave et chaque nœud aura N-1 répliques.
20. Les opérations d'écriture seront-elles perdues dans le cluster Redis ? Pourquoi?
Redis ne garantit pas une forte cohérence des données, ce qui signifie qu'en pratique, le cluster peut perdre des opérations d'écriture sous certaines conditions.
21. Comment les clusters Redis sont-ils répliqués ?
Réplication asynchrone
22. Quel est le nombre maximum de nœuds dans un cluster Redis ?
16384.
23. Comment choisir une base de données pour le cluster Redis ?
Le cluster Redis ne peut actuellement pas sélectionner la base de données et est par défaut la base de données 0.
24. Comment tester la connectivité de Redis ?
ping
25. À quoi servent les pipelines dans Redis ?
Un serveur de requêtes/réponses peut gérer de nouvelles requêtes même si les anciennes requêtes n'ont pas encore reçu de réponse. Cela permet d'envoyer plusieurs commandes au serveur sans attendre de réponse, et enfin de lire cette réponse en une seule étape. Il s’agit du pipelining, une technique largement utilisée depuis des décennies. Par exemple, de nombreux protocoles POP3 ont implémenté la prise en charge de cette fonction, ce qui accélère considérablement le processus de téléchargement de nouveaux e-mails depuis le serveur.
26. Comment comprendre les transactions Redis ?
Une transaction 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. Une transaction est une opération atomique : soit toutes les commandes de la transaction sont exécutées, soit aucune d'entre elles n'est exécutée.
27. Quelles sont les commandes liées aux transactions Redis ?
MULTI, EXEC, REJETER, REGARDER ##28. Comment définir respectivement le délai d'expiration et la validité permanente de la clé Redis ? Commandes EXPIREr et PERSIST.
29. Comment Redis optimise-t-il la mémoire ?
Utilisez autant que possible les tables de hachage (hachages). Les tables de hachage (ce qui signifie que le nombre stocké dans la table de hachage est petit) utilisent très peu de mémoire, vous devez donc abstraire autant que possible votre modèle de données. possible à l'intérieur d'une table de hachage. Par exemple, si vous avez un objet utilisateur dans votre système Web, ne définissez pas de clé distincte pour le nom, le prénom, l'adresse e-mail et le mot de passe de l'utilisateur. Stockez plutôt toutes les informations de l'utilisateur dans une table de hachage
. 30. Comment fonctionne le processus de recyclage Redis ?
Un client a exécuté une nouvelle commande et ajouté de nouvelles données. Redi vérifie l'utilisation de la mémoire si elle est supérieure à la limite de maxmemory, elle sera recyclée conformément à la politique définie. Une nouvelle commande est exécutée, etc. Nous franchissons donc constamment la limite de la mémoire en atteignant constamment la limite, puis en revenant constamment en dessous de la limite. Si le résultat d'une commande entraîne l'utilisation d'une grande quantité de mémoire (par exemple, l'enregistrement de l'intersection d'un grand ensemble dans une nouvelle clé), il ne faudra pas longtemps pour que la limite de mémoire soit dépassée par cette utilisation de la mémoire.
31. Quel algorithme est utilisé pour le recyclage Redis ?
Algorithme LRU
32. Comment Redis insère-t-il de grandes quantités de données ?
À partir de Redis 2.6, redis-cli prend en charge un nouveau mode appelé mode pipe pour effectuer de grandes quantités de travaux d'insertion de données.
33. Pourquoi avez-vous besoin d'un partitionnement Redis ?
Le partitionnement permet à Redis de gérer une mémoire plus grande, et Redis pourra utiliser la mémoire de toutes les machines. Sans partitions, vous ne pouvez utiliser que la mémoire d'une seule machine. Le partitionnement permet de doubler la puissance de calcul de Redis en ajoutant simplement des ordinateurs, et la bande passante réseau de Redis doublera également à mesure que le nombre d'ordinateurs et de cartes réseau augmente.
34. Savez-vous quelles solutions d'implémentation de partition Redis sont disponibles ?
Le partitionnement côté client signifie que le client a déjà décidé dans quel nœud Redis les données seront stockées ou lues. La plupart des clients implémentent déjà le partitionnement côté client. Le partitionnement du proxy signifie que le client envoie la demande au proxy, puis le proxy décide à quel nœud accéder pour écrire ou lire des données. L'agent décide quelles instances Redis demander en fonction des règles de partition, puis les renvoie au client en fonction des résultats de la réponse Redis. Une implémentation proxy de Redis et Memcached est le routage de requêtes Twemproxy (routage de requêtes), ce qui signifie que le client demande de manière aléatoire n'importe quelle instance Redis, puis Redis transmet la demande au nœud Redis approprié. Redis Cluster implémente une forme hybride de routage des requêtes, mais au lieu de transmettre les requêtes directement d'un nœud Redis à un autre nœud Redis, il redirige directement vers le nœud Redis correct avec l'aide du client.
35. Quels sont les inconvénients du partitionnement Redis ?
Les opérations impliquant plusieurs clés ne sont généralement pas prises en charge. Par exemple, vous ne pouvez pas croiser deux collections car elles peuvent être stockées dans des instances Redis différentes (en fait, il existe un moyen pour cette situation, mais la commande intersection ne peut pas être utilisée directement). Si vous utilisez plusieurs clés en même temps, vous ne pouvez pas utiliser les transactions Redis. La granularité du partitionnement est la clé, il n'est donc pas possible de partitionner un ensemble de données avec une très longue clé de tri unique, comme un très grand ensemble trié. Lors de l'utilisation de partitions, le traitement des données sera très compliqué, par exemple pour la sauvegarde, vous devrez collecter simultanément les fichiers RDB/AOF de différentes instances et hôtes Redis. Mise à l'échelle dynamique vers le haut ou vers le bas lorsque le partitionnement peut être complexe. Le cluster Redis ajoute ou supprime des nœuds Redis au moment de l'exécution, ce qui permet d'obtenir un rééquilibrage des données qui est le plus transparent possible pour les utilisateurs. Cependant, certaines autres méthodes de partitionnement client ou de partitionnement proxy ne prennent pas en charge cette fonctionnalité. Cependant, il existe une technologie de pré-partage qui peut également mieux résoudre ce problème.
36. Comment étendre les données persistantes et le cache Redis ?
Si Redis est utilisé comme cache, utilisez un hachage cohérent pour obtenir une expansion et une contraction dynamiques. Si Redis est utilisé comme stockage persistant, une relation de mappage clés-nœuds fixe doit être utilisée et le nombre de nœuds ne peut pas être modifié une fois déterminé. Sinon (c'est-à-dire lorsque les nœuds Redis doivent changer dynamiquement), un système capable de rééquilibrer les données au moment de l'exécution doit être utilisé, et actuellement seul le cluster Redis peut le faire.
37. Les Redis distribués doivent-ils être effectués à un stade précoce ou à un stade ultérieur lorsque l'échelle est augmentée ? Pourquoi?
Étant donné que Redis est si léger (une seule instance n'utilise que 1 Mo de mémoire), le meilleur moyen d'empêcher une expansion future est de démarrer plusieurs instances depuis le début. Même si vous ne disposez que d'un seul serveur, vous pouvez faire exécuter Redis de manière distribuée dès le début, en utilisant des partitions pour démarrer plusieurs instances sur le même serveur. Configurer quelques instances Redis supplémentaires au début, par exemple 32 ou 64 instances, peut s'avérer fastidieux pour la plupart des utilisateurs, mais cela en vaut la peine à long terme. Dans ce cas, lorsque vos données continuent de croître et que vous avez besoin de plus de serveurs Redis, il vous suffit de migrer l'instance Redis d'un service vers un autre serveur (sans considérer la question du partitionnement). Une fois que vous avez ajouté un autre serveur, vous devez migrer la moitié de vos instances Redis de la première machine vers la deuxième machine.
38. Qu'est-ce que Twemproxy ?
Twemproxy est un système proxy (de mise en cache) maintenu par Twitter, qui proxy le protocole ASCII et le protocole Redis de Memcached. Il s'agit d'un programme monothread, écrit en langage C, et qui s'exécute très rapidement. Il s'agit d'un logiciel open source utilisant la licence Apache 2.0. Twemproxy prend en charge le partitionnement automatique. Si l'un de ses nœuds proxy Redis n'est pas disponible, le nœud sera automatiquement exclu (cela modifiera la relation de mappage clés-instances d'origine, vous ne devez donc utiliser Twemproxy que lorsque vous utilisez Redis comme cache). Twemproxy lui-même n'a pas un seul point de problème car vous pouvez démarrer plusieurs instances de Twemproxy, puis laisser votre client se connecter à n'importe quelle instance de Twemproxy. Twemproxy est une couche intermédiaire entre le client Redis et le serveur. La gestion de la fonction de partition ne devrait pas être compliquée et elle devrait être relativement fiable.
39. Quels clients prennent en charge un hachage cohérent ?
Redis-rb, Predis, etc.
40. Quelle est la différence entre Redis et les autres magasins à valeur clé ?
Redis a des structures de données plus complexes et fournit des opérations atomiques sur celles-ci. Il s'agit d'un chemin évolutif différent des autres bases de données. Les types de données de Redis sont basés sur des structures de données de base et sont transparents pour les programmeurs, sans nécessiter d'abstractions supplémentaires. Redis s'exécute en mémoire mais peut être conservé sur le disque, la mémoire doit donc être pesée lors de la lecture et de l'écriture à grande vitesse de différents ensembles de données. La quantité de données ne doit pas être supérieure à la mémoire matérielle. Un autre avantage des bases de données en mémoire est que par rapport aux mêmes structures de données complexes sur disque, le fonctionnement en mémoire est très simple, donc Redis peut faire beaucoup de choses avec une forte complexité interne. De plus, en termes de format de disque, ils sont générés de manière compacte car ils ne nécessitent pas d'accès aléatoire.
41. Quelle est l'utilisation de la mémoire de Redis ?
Pour vous donner un exemple : 1 million de paires clé-valeur (les clés vont de 0 à 999999 et la valeur est la chaîne "hello world") utilise 100 Mo sur mon ordinateur portable Mac 32 bits. Mettre les mêmes données dans une clé ne nécessite que 16 Mo. En effet, la valeur de la clé entraîne une surcharge importante. L'exécution sur Memcached a des résultats similaires, mais la surcharge est légèrement inférieure à celle de Redis, car Redis enregistrera les informations de type, le comptage de références, etc. Bien entendu, le rapport entre les deux est bien meilleur avec de grandes paires clé-valeur. Les systèmes 64 bits nécessitent plus de mémoire que les systèmes 32 bits, en particulier lorsque les paires clé-valeur sont petites, car les pointeurs occupent 8 octets dans les systèmes 64 bits. Mais, bien sûr, les systèmes 64 bits prennent en charge une mémoire plus grande, donc exécuter un grand serveur Redis nécessitera plus ou moins un système 64 bits.
42. Quels sont les moyens de réduire l'utilisation de la mémoire de Redis ?
Si vous utilisez une instance Redis 32 bits, vous pouvez faire bon usage des données de type collection telles que le hachage, la liste, l'ensemble trié, l'ensemble, etc., car généralement de nombreuses petites valeurs-clés peuvent être utilisés de manière plus compacte et stockés ensemble.
43. Quelle commande est utilisée pour afficher les informations sur l'utilisation et l'état de Redis ?
info
44. Que se passera-t-il si Redis manque de mémoire ?
Si la limite supérieure définie est atteinte, la commande Redis write renverra un message d'erreur (mais la commande read peut toujours revenir normalement.) Ou vous pouvez utiliser Redis comme cache pour utiliser l'élimination de la configuration mécanisme. Lorsque Redis atteint la mémoire, l'ancien contenu sera vidé dans un certain délai.
45. Redis est monothread, comment améliorer l'utilisation du CPU multicœur ?
Vous pouvez déployer plusieurs instances Redis sur le même serveur et les utiliser comme serveurs différents. À un moment donné, un seul serveur ne suffit pas de toute façon, donc si vous le souhaitez avec plusieurs processeurs, vous pouvez envisager le partitionnement.
46. Combien de clés une instance Redis peut-elle stocker au maximum ?
Combien d'éléments les listes, ensembles et ensembles triés peuvent-ils stocker au maximum ? En théorie, Redis peut gérer jusqu'à 232 clés, et lors de tests réels, chaque instance stockait au moins 250 millions de clés. Nous testons des valeurs plus grandes. N'importe quelle liste, ensemble et ensemble trié peut contenir 232 éléments. En d'autres termes, la limite de stockage de Redis est la valeur de la mémoire disponible dans le système.
47. Problèmes de performances courants et solutions avec Redis ?
(1) Il est préférable que le maître n'effectue aucun travail de persistance, tel que les instantanés de mémoire RDB et les fichiers journaux AOF
(2) Si les données sont importantes, un esclave doit activer Sauvegarde des données AOF, la politique est définie pour se synchroniser une fois par seconde
(3) Pour la vitesse de réplication maître-esclave et la stabilité de la connexion, il est préférable que le maître et l'esclave soient dans le même LAN
(4) Essayez d'éviter d'ajouter des bibliothèques esclaves à la bibliothèque maître qui est sous forte pression.
(5) N'utilisez pas de structure graphique pour la réplication maître-esclave. Il est plus stable de le faire. utilisez une structure de liste chaînée unidirectionnelle, c'est-à-dire : Maître <- Esclave1 <- Esclave2 <- Esclave3... Cette structure est pratique pour résoudre le problème du point de défaillance unique et réaliser le remplacement du Maître par l'Esclave. Si le maître raccroche, vous pouvez immédiatement activer Slave1 en tant que maître, laissant tout le reste inchangé.
48. Quelles méthodes de persistance Redis propose-t-il ?
Le mode de persistance RDB peut stocker des instantanés de vos données à des intervalles de temps spécifiés. Le mode de persistance AOF enregistre chaque opération d'écriture sur le serveur lorsque le serveur redémarre, ces commandes seront réexécutées pour restaurer les données d'origine. utilise le protocole redis pour ajouter chaque opération d'écriture à la fin du fichier. Redis peut également réécrire le fichier AOF en arrière-plan afin que la taille du fichier AOF ne soit pas trop grande si vous souhaitez que vos données soient stockées uniquement lorsque. le serveur est en cours d'exécution, vous ne pouvez pas non plus utiliser de méthode de persistance. Vous pouvez également activer les deux méthodes de persistance en même temps. Dans ce cas, lorsque Redis redémarre, le fichier AOF sera chargé en premier pour restaurer les données d'origine, car sous. circonstances normales L'ensemble de données enregistré par le fichier AOF est plus complet que l'ensemble de données enregistré par le fichier RDB. Le plus important est de comprendre la différence entre les méthodes de persistance RDB et AOF. Commençons par la méthode de persistance RDB.
49. Comment choisir la méthode de persistance appropriée ?
De manière générale, si vous souhaitez obtenir une sécurité des données comparable à PostgreSQL, vous devez utiliser les deux fonctions de persistance en même temps. Si vous vous souciez profondément de vos données mais que vous pouvez toujours vous permettre une perte de données en quelques minutes, vous pouvez simplement utiliser la persistance RDB. De nombreux utilisateurs n'utilisent que la persistance AOF, mais cette méthode n'est pas recommandée : car générer régulièrement des instantanés RDB (instantanés) est très pratique pour la sauvegarde de la base de données, et RDB restaure les ensembles de données plus rapidement qu'AOF, sauf que l'utilisation de RDB peut également éviter les bugs de le programme AOF mentionné plus haut.
50. La modification de la configuration prendra-t-elle effet en temps réel sans redémarrer Redis ?
Il existe un certain nombre d'options de configuration pour les instances en cours d'exécution qui peuvent être modifiées via la commande CONFIG SET sans effectuer aucune forme de redémarrage. À partir de Redis 2.2, il est possible de passer de l'AOF à la persistance des instantanés de RDB ou par d'autres moyens sans redémarrer Redis. Récupérez la commande 'CONFIG GET *' pour plus d'informations. Mais parfois, un redémarrage est nécessaire, par exemple pour mettre à niveau le programme Redis vers une nouvelle version, ou lorsque vous devez modifier certains paramètres de configuration qui ne sont actuellement pas pris en charge par la commande CONFIG.
Apprentissage recommandé : Tutoriel vidéo Redis
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!