Maison développement back-end Tutoriel C#.Net Tutoriel Redis (11) : Introduction à la mémoire virtuelle

Tutoriel Redis (11) : Introduction à la mémoire virtuelle

Dec 28, 2016 pm 03:04 PM
redis

1. Introduction :

Comme la plupart des bases de données NoSQL, Redis suit également le modèle de stockage de données Clé/Valeur. Dans certains cas, Redis enregistrera les clés/valeurs en mémoire pour améliorer l'efficacité de la requête et de la modification des données. Cependant, cette approche n'est pas toujours un bon choix. Compte tenu de cela, nous pouvons l'optimiser davantage, c'est-à-dire essayer de conserver uniquement les données Clés dans la mémoire, ce qui peut garantir l'efficacité de la récupération des données, et les données Valeurs peuvent être échangées sur le disque lorsqu'elles sont rarement utilisé.
Dans les applications réelles, seulement environ 10 % des clés sont des clés relativement couramment utilisées, donc Redis peut échanger les clés et valeurs restantes moins couramment utilisées sur le disque via le stockage virtuel, et une fois celles-ci échangées, lorsque les clés ou Les valeurs doivent être lues, Redis les relit dans la mémoire principale.

2. Scénarios d'application :

Pour la plupart des bases de données, le moyen le plus idéal d'exécuter est de charger toutes les données en mémoire, et les opérations de requête ultérieures peuvent être entièrement basées sur la mémoire. Cependant, en réalité, ce scénario n’est pas courant. Dans la plupart des cas, seule une partie des données peut être chargée en mémoire.
Dans Redis, il existe un concept très important, c'est-à-dire que les clés ne sont généralement pas échangées, donc s'il y a un grand nombre de clés dans votre base de données et que chaque clé n'est associée qu'à une petite valeur, alors ce scénario est pas idéal pour utiliser la mémoire virtuelle. Si au contraire la base de données ne contient qu’un petit nombre de clés, mais que la valeur associée à chaque clé est très grande, alors ce scénario est parfait pour utiliser le stockage virtuel.
Dans les applications réelles, afin que la mémoire virtuelle joue un rôle plus complet et nous aide à améliorer l'efficacité de fonctionnement du système, nous pouvons fusionner des clés avec de nombreuses valeurs plus petites en clés avec un petit nombre de valeurs plus grandes. La méthode la plus importante consiste à changer le mode clé/valeur d'origine en un mode basé sur le hachage, ce qui permet à de nombreuses clés d'origine de devenir des attributs dans le hachage.

3. Configuration :

1). Ajoutez les éléments de configuration suivants dans le fichier de configuration pour permettre au serveur Redis actuel d'activer la fonction de mémoire virtuelle lors de son démarrage.
vm-enabled yes

2). Définissez le nombre maximum d'octets de mémoire virtuelle disponibles pour Redis dans le fichier de configuration. Si les données en mémoire sont supérieures à cette valeur, certains objets seront échangés sur le disque et la mémoire occupée par les objets échangés sera libérée. L'échange ne s'arrêtera que lorsque la mémoire utilisée sera inférieure à cette valeur.

     vm-max-memory (bytes)
Copier après la connexion

La règle d'échange de Redis est d'essayer de considérer les données "les plus anciennes", c'est-à-dire que les données qui n'ont pas été utilisées depuis le plus longtemps seront échangées. Si les âges des deux objets sont identiques, les données ayant la valeur la plus élevée seront échangées en premier. Il convient de noter que Redis n'échangera pas de clés sur le disque, donc si les données des clés à elles seules ont rempli toute la mémoire virtuelle, alors ce modèle de données ne sera pas adapté à l'utilisation du mécanisme de mémoire virtuelle, ou la valeur doit être définie plus haut. Grand pour accueillir toutes les données des clés. Dans les applications réelles, si nous envisageons d'utiliser la mémoire virtuelle Redis, nous devons allouer autant de mémoire que possible à Redis pour éviter les échanges fréquents d'entrée et de sortie.

3). Définissez le nombre de pages et le nombre d'octets occupés par chaque page dans le fichier de configuration. Afin de transférer des données de la mémoire vers le disque, nous devons utiliser un fichier d'échange. Ces fichiers n'ont rien à voir avec la persistance des données et Redis les supprimera tous avant de quitter. Étant donné que la plupart des accès aux fichiers d'échange sont aléatoires, il est recommandé de stocker le fichier d'échange sur un disque SSD, ce qui peut grandement améliorer l'efficacité de fonctionnement du système

vm-pages 134217728
    vm-page-size 32
Copier après la connexion

Dans la configuration ci-dessus, Redis échangera le fichier Divisé en pages vm-pages, les octets occupés par chaque page sont vm-page-size, puis la taille finale du fichier d'échange disponible pour Redis est : vm-pages * vm-page-size. Étant donné qu'une valeur peut être stockée sur une ou plusieurs pages, mais qu'une page ne peut pas contenir plusieurs valeurs, nous devons donc prendre pleinement en compte cette fonctionnalité de Redis lors de la définition de vm-page-size.

4). Il y a un paramètre de configuration très important dans le fichier de configuration Redis, à savoir :

    vm-max-threads 4
Copier après la connexion

CPU cores。如果将该值设置为0,那么Redis在与交换文件进行IO交互时,将以同步的方式执行此操作。
    对于Redis而言,如果操作交换文件是以同步的方式进行,那么当某一客户端正在访问交换文件中的数据时,其它客户端如果再试图访问交换文件中的数据,该客户端的请求就将被挂起,直到之前的操作结束为止。特别是在相对较慢或较忙的磁盘上读取较大的数据值时,这种阻塞所带来的影响就更为突兀了。然而同步操作也并非一无是处,事实上,从全局执行效率视角来看,同步方式要好于异步方式,毕竟同步方式节省了线程切换、线程间同步,以及线程拉起等操作产生的额外开销。特别是当大部分频繁使用的数据都可以直接从主内存中读取时,同步方式的表现将更为优异。
    如果你的现实应用恰恰相反,即有大量的换入换出操作,同时你的系统又有很多的cores,有鉴于此,你又不希望客户端在访问交换文件之前不得不阻塞一小段时间,如果确实是这样,我想异步方式可能更适合于你的系统。
    至于最终选用哪种配置方式,最好的答案将来自于不断的实验和调优。

以上就是Redis教程(十一):虚拟内存介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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 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 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 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 résoudre la perte de données avec Redis Comment résoudre la perte de données avec Redis Apr 10, 2025 pm 08:24 PM

Les causes de la perte de données redis incluent les défaillances de mémoire, les pannes de courant, les erreurs humaines et les défaillances matérielles. Les solutions sont: 1. Stockez les données sur le disque avec RDB ou AOF Persistance; 2. Copiez sur plusieurs serveurs pour une haute disponibilité; 3. Ha avec Redis Sentinel ou Redis Cluster; 4. Créez des instantanés pour sauvegarder les données; 5. Mettre en œuvre les meilleures pratiques telles que la persistance, la réplication, les instantanés, la surveillance et les mesures de sécurité.

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.

See all articles