Maison base de données Redis Quels sont les avantages et les inconvénients de Redis, et quels sont les scénarios d'utilisation ?

Quels sont les avantages et les inconvénients de Redis, et quels sont les scénarios d'utilisation ?

Dec 22, 2020 am 09:36 AM
redis 优缺点 使用场景

Quels sont les avantages et les inconvénients de Redis, et quels sont les scénarios d'utilisation ?

Avantages et inconvénients de la base de données Redis :

(Recommandation vidéo d'apprentissage : Tutoriel vidéo Redis)

1. a Quels sont les avantages ?

(1) C'est rapide car les données sont stockées en mémoire, similaire à HashMap. L'avantage de HashMap est que la complexité temporelle de la recherche et de l'opération est O(1)

(2. ) Prise en charge riche Type de données, prend en charge la chaîne, la liste, l'ensemble, l'ensemble trié, le hachage

(3) Prend en charge les transactions, les opérations sont toutes atomiques. La soi-disant atomicité signifie que toutes les modifications apportées aux données sont soit exécutées, soit. pas exécuté du tout

(4) Fonctionnalités riches : peut être utilisé pour la mise en cache, la messagerie, la définition du délai d'expiration par clé, il sera automatiquement supprimé après l'expiration

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 Problèmes de performances courants de Redis et solutions :

(1) Il est préférable que le maître ne fasse aucun travail de persistance. , tels que les instantanés de mémoire RDB et les fichiers journaux AOF

(2) Si les données sont importantes, un esclave active les données de sauvegarde AOF et 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 stressée

(5) N'utilisez pas de structure graphique pour la réplication maître-esclave. Il est plus stable d'utiliser une structure de liste chaînée unidirectionnelle, c'est-à-dire : Maître <- Esclave1 <- Esclave2 <-. Slave3...

Cette structure est pratique pour résoudre des problèmes uniques. Signaler le problème de panne 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é.

4. 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

Connaissances connexes : La taille. de l'ensemble de données de la mémoire Redis augmente Lorsqu'il atteint une certaine taille, une stratégie d'élimination des données sera mise en œuvre. redis propose 6 stratégies d'élimination de données :

voltile-lru : sélectionnez les données les moins récemment utilisées dans l'ensemble de données (server.db[i].expires) avec un délai d'expiration défini pour l'élimination

volatile-ttl : sélectionnez les données à expirer dans l'ensemble de données (server.db[i].expires) avec un délai d'expiration défini et éliminez-les

volatile-random : sélectionnez l'ensemble de données avec un délai d'expiration (server. db[i].expires) pour éliminer toutes les données

allkeys-lru : Sélectionnez les données les moins récemment utilisées dans l'ensemble de données (server.db[i].dict) pour éliminer

allkeys -random : sélectionner arbitrairement des données dans l'ensemble de données (server.db[i].dict) pour éliminer

no-enviction (eviction) : interdire l'expulsion des données

5. La différence entre Memcache et Redis Que sont-ils ?

1), méthode de stockage

Memecache stocke toutes les données dans la mémoire. Il raccrochera après une panne de courant et les données ne pourront pas dépasser la taille de la mémoire.

Redis est partiellement stocké sur le disque dur, ce qui assure la persistance des données.

2), Types de prise en charge des données

La prise en charge par Memcache des types de données est relativement simple.

Redis a des types de données complexes.

3). Différents modèles sous-jacents sont utilisés

Les méthodes de mise en œuvre sous-jacentes et les protocoles d'application pour la communication avec les clients sont différents.

Redis a directement construit le mécanisme VM par lui-même, car si le système général appelle les fonctions système, il perdra un certain temps à se déplacer et à demander.

4), taille de la valeur

redis peut atteindre un maximum de 1 Go, tandis que memcache n'est que de 1 Mo

5 Quels sont les problèmes de performances courants de Redis ? Comment le résoudre ?

1) Le maître écrit des instantanés de mémoire et la commande save planifie la fonction rdbSave, ce qui bloquera le travail du thread principal. Lorsque l'instantané est relativement volumineux, l'impact sur les performances sera très important et. le service sera suspendu par intermittence, donc Master est le meilleur. N'écrivez pas d'instantanés de mémoire.

2) Maîtrisez la persistance AOF. Si le fichier AOF n'est pas réécrit, cette méthode de persistance aura un impact minimal sur les performances, mais le fichier AOF continuera à croître si le fichier AOF est trop volumineux. affecter la récupération de la vitesse de redémarrage du maître. Il est préférable de ne pas effectuer de travail de persistance sur le maître, y compris les instantanés de mémoire et les fichiers journaux AOF. En particulier, n'activez pas les instantanés de mémoire pour la persistance. Si les données sont critiques, un esclave doit activer les données de sauvegarde AOF, et la stratégie est la suivante. pour synchroniser une fois par seconde.

3) Le maître appelle BGREWRITEAOF pour réécrire le fichier AOF qui occupera une grande quantité de ressources CPU et mémoire pendant la réécriture, ce qui entraînera une charge de service excessive et une suspension du service à court terme.

4). Problèmes de performances de la réplication maître-esclave Redis Pour la vitesse de réplication maître-esclave et la stabilité de la connexion, il est préférable que l'esclave et le maître soient dans le même LAN

7. Redis est le scénario le plus approprié

Redis est le plus adapté à tous les scénarios de données en mémoire. Bien que Redis fournisse également des fonctions de persistance, il s'agit en fait davantage d'une fonction sauvegardée sur disque, ce qui est assez différent de. persistance au sens traditionnel du terme, alors vous pouvez avoir des questions. Il semble que Redis ressemble plus à une version améliorée de Memcached, alors quand utiliser Memcached et quand utiliser Redis ?

Si vous comparez simplement la différence. entre Redis et Memcached, la grande différence est que la plupart obtiendront les vues suivantes :

1. Redis prend non seulement en charge les données simples de type k/v, mais fournit également le stockage de structures de données telles que list, set, zset et hash.
2. Redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode maître-esclave.
3. Redis prend en charge la persistance des données, qui peut conserver les données en mémoire sur le disque et peut être rechargée pour être utilisée lors du redémarrage.

(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 des jetons 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 peut vous aider à charger le plus rapidement possible les pages que vous avez parcourues.

(3), Queue

L'un des grands avantages de Redis dans le domaine des moteurs de stockage en mémoire est qu'il fournit des opérations de liste et d'ensemble, ce qui permet à Redis d'être utilisé comme un bon message plateforme de file d'attente. 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 à diverses files d'attente. besoins. . Par exemple, Celery a un backend qui utilise Redis comme courtier. Vous pouvez le visualiser à partir d'ici.

(4), 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. Nous voulons donc obtenir les 10 meilleurs utilisateurs de l'ensemble trié – appelons-les « user_scores », et nous devons simplement le faire comme ceci :

Bien sûr, cela suppose que vous triez par ordre croissant. sur les scores de vos utilisateurs. Si vous souhaitez renvoyer l'utilisateur et son score, vous devez l'exécuter comme ceci :

ZRANGE user_scores 0 10 WITHSCORES

Agora Games est un bon exemple, implémenté en Ruby, avec son liste de classement Il utilise Redis pour stocker les données, vous pouvez le voir ici.

(5), publication/abonnement

Le 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éclencheurs 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).

De toutes les fonctionnalités fournies par Redis, j'estime que c'est celle que les gens aiment le moins, même si elle offre aux utilisateurs ce multi-fonction.

Recommandations associées : Tutoriel sur la base de données 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment construire le mode Cluster Redis Comment construire le mode Cluster Redis Apr 10, 2025 pm 10:15 PM

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 Comment effacer les données redis Apr 10, 2025 pm 10:06 PM

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.

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

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.

Comment utiliser la commande redis Comment utiliser la commande redis Apr 10, 2025 pm 08:45 PM

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).

Comment utiliser Redis Lock Comment utiliser Redis Lock Apr 10, 2025 pm 08:39 PM

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.

Comment lire le code source de Redis Comment lire le code source de Redis Apr 10, 2025 pm 08:27 PM

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.

Comment utiliser la ligne de commande redis Comment utiliser la ligne de commande redis Apr 10, 2025 pm 10:18 PM

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

Comment configurer le temps d'exécution du script LUA dans Centos Redis Comment configurer le temps d'exécution du script LUA dans Centos Redis Apr 14, 2025 pm 02:12 PM

Sur CentOS Systems, vous pouvez limiter le temps d'exécution des scripts LUA en modifiant les fichiers de configuration Redis ou en utilisant des commandes Redis pour empêcher les scripts malveillants de consommer trop de ressources. Méthode 1: Modifiez le fichier de configuration Redis et localisez le fichier de configuration Redis: le fichier de configuration redis est généralement situé dans /etc/redis/redis.conf. Edit Fichier de configuration: Ouvrez le fichier de configuration à l'aide d'un éditeur de texte (tel que VI ou NANO): Sudovi / etc / redis / redis.conf Définissez le délai d'exécution du script LUA: Ajouter ou modifier les lignes suivantes dans le fichier de configuration pour définir le temps d'exécution maximal du script LUA (unité: millisecondes)

See all articles