Maison  >  Article  >  base de données  >  Analyse super détaillée du fichier de configuration Redis redis.conf

Analyse super détaillée du fichier de configuration Redis redis.conf

coldplay.xixi
coldplay.xixiavant
2021-02-22 09:46:254954parcourir

Analyse super détaillée du fichier de configuration Redis redis.conf

Recommandé (gratuit) : Tutoriel Redis

Répertoire d'articles

  • 1. Trente configurations couramment utilisées
  • 2. Stratégie d'élimination de la mémoire Redis
    • 2.1 Définir le délai d'expiration des données
    • 2.2 Utiliser l'algorithme LRU pour supprimer dynamiquement les données inutilisées
  • 3. Configuration personnalisée Redis

Lors du développement sous Linux, rappelez-vous  : Le logiciel est installé sous /opt par défaut. Ne modifiez jamais directement le fichier de configuration avec les paramètres d'usine par défaut. L'approche correcte est 备份一份后再操作.

Le fichier de configuration Redis se trouve dans le répertoire d'installation de Redis et le nom du fichier est reids.conf Ce qui suit est une introduction à trente configurations couramment utilisées. L'article est accompagné d'une traduction anglaise du. fichier redis.conf.

1. Trente configurations couramment utilisées


Les dix principales configurations

  • daemonize no
    Redis ne s'exécute pas en tant que processus démon par défaut. Il peut être modifié en oui pour activer le processus démon.

  • pidfile /var/run/redis/pid
    Lorsque Redis s'exécute en tant que démon, Redis écrira le pid dans le fichier /var/run/redis.pid par défaut, qui peut être spécifié via le chemin du fichier pid.

  • port 6379
    Spécifie le port d'écoute de Redis.

  • bind 127.0.0.1
    L'adresse de l'hôte liée par Redis.

  • timeout 300
    Définissez la durée pendant laquelle le client sera inactif avant de fermer la connexion. S'il est égal à 0, cela signifie désactiver cette fonction.

  • loglevel verbose
    Spécifie le niveau de journalisation Redis prend en charge quatre niveaux : débogage, détaillé (par défaut), notification et avertissement.

  • fichier journal stdout
    Mode de journalisation, la valeur par défaut est la sortie standard Si Redis est configuré en tant que démon, le mode de journalisation ici est la sortie standard. , le journal sera envoyé aux /dev/null

  • bases de données 16
    Définissez le nombre de bases de données, le nombre par défaut est 0, vous pouvez utiliser la commande select <dbid> Spécifiez l'identifiant de la base de données sur la connexion.

  • enregistrer <seconds> <changes>
    Spécifiez la période de temps et le nombre d'opérations de mise à jour pour synchroniser les données avec le fichier de données. Plusieurs conditions peuvent être remplies. . Trois conditions sont fournies dans le fichier de configuration Redis :
    save 900 1 ; save 300 10 ; save 60 10000

  • rdbcompression yes
    spécifié S'il faut compresser les données lors de leur stockage dans la base de données locale. La valeur par défaut est oui. Redis utilise la compression LZF (algorithme de compression). Si vous souhaitez économiser du temps CPU, vous pouvez désactiver cette option, mais cela entraînera la compression du fichier de base de données. devenir énorme.


Les dix configurations du milieu

  • dbfilename dump.rdb
    Nom du fichier de base de données locale spécifié, la valeur par défaut est dump.rdb

  • dir ./
    Spécifiez le répertoire de stockage de la base de données locale

  • esclavede <masterip><masterport>
    Société Lorsque cette machine sert d'esclave, définissez l'adresse IP et le port du service maître Lorsque Redis démarre, les données seront automatiquement synchronisées à partir du maître <.>

  • masterauth <master-password> Lorsque le service maître définit la protection par mot de passe, le mot de passe permettant au service esclave de se connecter au maître.

  • requirepass foobared Définir le mot de passe de connexion pour Redis Si un mot de passe de connexion est configuré, le client doit le fournir via
    . lors de la connexion à Redis, le mot de passe est désactivé par défaut. AUTH<password>

  • maxclients 128 Définissez le nombre maximum de connexions client en même temps. La valeur par défaut est illimitée. Le nombre de connexions client que Redis peut. ouvert en même temps est le processus Redis Le nombre maximum de descripteurs de fichiers pouvant être ouverts. Si maxclients est défini sur 0, cela signifie qu'il n'y a pas de limite. Lorsque le nombre de connexions client atteint la limite, Redis fermera la nouvelle connexion et renverra le message d'erreur du nombre maximum de clients atteint au client.

  • maxmemory <bytes> Spécifie la limite de mémoire maximale de Redis chargera les données dans la mémoire au démarrage. Redis essaiera d'abord d'effacer les clés qui ont expiré ou sont sur le point d'expirer. Une fois cette méthode traitée, le paramètre de mémoire maximal est toujours atteint et les opérations d'écriture ne seront pas possibles, mais les opérations de lecture peuvent toujours être effectuées. Le nouveau mécanisme vm de Redis stocke la clé en mémoire et la valeur dans la zone d'échange.

  • appendonly no Spécifie s'il faut se connecter après une opération de mise à jour. Redis écrit les données en un seul morceau par défaut. Le disque, s'il n'est pas allumé, peut entraîner une période de perte de données lors d’une panne de courant.

  • appendfilename appendonly.aof
    Spécifiez le nom du fichier journal de mise à jour, la valeur par défaut est appendonly.aof.

  • appendsync everysec
    Spécifiez les conditions du journal de mise à jour. Il existe trois options :
    ①non : indique que le système d'exploitation synchronise les données. cache sur le disque (rapide),
    ②always : indique que fsync() est appelé manuellement pour écrire des données sur le disque après chaque mise à jour du système d'exploitation (lent, sûr),
    ③everysec : indique une merveilleuse synchronisation une fois ( compromis d'efficacité, la valeur par défaut)

Dix derniers

  • vm-enable no
    Spécifie s'il faut activer le mécanisme de mémoire de virtualisation, la valeur par défaut est non, le mécanisme VM stocke les données dans des pages et Redis échange les pages avec moins d'accès, c'est-à-dire les données froides, sur le disque, et les pages avec plus d'accès sont automatiquement échangé du disque vers la mémoire.
  • vm-swap-file /tmp/redis.swap
    Chemin du fichier de mémoire virtuelle, la valeur par défaut est /tmp/redis.swap, qui ne peut pas être partagée par plusieurs instances Redis.
  • vm-max-memory 0
    Stockez toutes les données supérieures à vm-max-memory dans la mémoire virtuelle, quelle que soit la taille de vm-max-memory, toutes index Les données sont stockées en mémoire (les données d'index de Redis sont des clés). En d'autres termes, lorsque vm-max-memory est défini sur 0, toutes les valeurs existent réellement sur le disque. La valeur par défaut est 0
  • vm-page-size 32
    Le fichier d'échange Redis est divisé en plusieurs pages. Un objet peut être enregistré sur plusieurs pages, mais sur une seule. page Il ne peut pas être partagé par plusieurs objets. vm-page-size est défini en fonction de la taille des données stockées. Si de nombreux petits objets sont stockés, il est préférable de définir la taille de la page sur 32 ou 64 octets si de très gros objets sont stockés. , vous pouvez en utiliser davantage. Pour les grandes pages, en cas de doute, utilisez la valeur par défaut.
  • vm-pages 134217728
    Définissez le nombre de pages dans le fichier d'échange puisque la table des pages (un bitmap indiquant que la page est libre ou utilisée) est placée dans. mémoire, toutes les 8 pages sur le disque consommeront 1 octet de mémoire.
  • vm-max-threads 4
    Définissez le nombre de threads pour accéder au fichier d'échange Ne dépassez pas le nombre de cœurs de la machine S'il est défini sur 0, toutes les opérations sur le fichier d'échange seront bloquées. Elles sont toutes en série et peuvent entraîner un délai relativement long. La valeur par défaut est 4.
  • glueoutputbuf yes
    Définit s'il faut combiner des paquets plus petits en un seul paquet et les envoyer lors de la réponse au client. La valeur par défaut est activée.
  • hash-max-zipmap-entries 64/hash-max-zipmap-value 512
    Spécifiez quand plus d'un certain nombre ou maximum Lorsque les éléments dépassent une certaine valeur critique, un algorithme de hachage spécial est utilisé.
  • activerehashing yes
    Spécifie s'il faut activer le rehashing, la valeur par défaut est activée.
  • include /path/to/local.conf
    spécifie l'inclusion d'autres fichiers de configuration Vous pouvez utiliser le même fichier de configuration entre plusieurs instances Redis sur le même hôte, et chaque instance a ses propres spécificités. fichier de configuration.

2. Stratégie d'élimination de la mémoire de Redis

En tant qu'excellent middleware de mise en cache, Redis stocke souvent une grande quantité de données, même si le déploiement de cluster est utilisé pour dynamiquement Lors de l'extension de la capacité, la mémoire doit également être effacée immédiatement pour maintenir les performances du système.

2.1 Définir un délai d'expiration pour les données

  • expire key time(以秒为单位) Il s'agit de la méthode la plus couramment utilisée
  • setex(String Key, int seconds, String value) Méthode unique aux chaînes

En plus de la méthode unique de la chaîne pour définir l'heure d'expiration, d'autres méthodes doivent s'appuyer sur la méthode expire pour définir l'heure.
Si aucune heure n'est définie, le cache n'expirera jamais.
Si vous définissez l'heure d'expiration et que vous souhaitez plus tard que le cache n'expire jamais, utilisez persist key

2.2 Utilisez l'algorithme LRU pour supprimer dynamiquement les données inutilisées

Un algorithme de remplacement de page pour la gestion de la mémoire. Les blocs de données (blocs de mémoire) qui se trouvent dans la mémoire mais ne sont pas utilisés sont appelés LRU. Le système d'exploitation les supprimera de la mémoire pour laisser de la place au chargement d'autres données en fonction des données appartenant à la mémoire. LRU.

  1. volatile-lru  Parmi les données avec un délai d'expiration défini, supprimez les données les moins couramment utilisées

  2. allkeys-lru Interrogez les données les moins couramment utilisées parmi toutes les clés et supprimez-les. Il s'agit de la stratégie la plus largement utilisée.

  3. volatile-aléatoire Supprimer aléatoirement les données avec un délai d'attente

  4. allkeys-random Tout interroger clés, puis supprimez de manière aléatoire

  5. volatile-ttl Interrogez toutes les données avec un délai d'expiration défini, puis triez-les pour collecter les données des entreprises publiques Supprimer.

  6. noeviction S'il est défini sur cet attribut, l'opération de suppression ne sera pas effectuée et une erreur sera renvoyée en cas de débordement de mémoire

  7. volatile-lfu   Supprimez la clé la moins fréquemment utilisée de toutes les clés configurées avec un délai d'attente

  8. allkeys-lfu                                     log in\ 🎜>

  9. Entrez le répertoire d'installation correspondant
et modifiez le fichier de configuration redis.conf.

En tant que débutant, Redis doit généralement modifier les trois éléments suivants :

Changer /usr/local/redisdaemonize

par

daemonize
  • , c'est-à-dire qu'il est démarré en tant que processus démon. noCommentez bind yes pour permettre aux machines autres que la machine locale d'accéder au service Redis.
  • Utilisez
  • requirepass 127.0.01 pour garantir la sécurité du service/dans de rares cas, l'accès à distance n'est pas possible sans définir un mot de passe.
  • Redis adopte un mode multi-thread à processus unique. Lorsque l'option démoniser dans redis.conf est définie sur oui, cela signifie que le mode processus démon est activé. Dans ce mode, redis s'exécutera en arrière-plan et écrira le numéro pid du processus dans le fichier défini par l'option redis.conf pidfile. À ce stade, redis s'exécutera toujours à moins que le processus ne soit arrêté manuellement. Mais lorsque l'option démoniser est définie sur non, l'interface actuelle entrera dans l'interface de ligne de commande redis. La sortie forcée en quittant ou la fermeture de l'outil de connexion (putty, xshell, etc.) entraînera la fermeture du processus redis. La plupart des applications développées côté serveur s’exécutent en arrière-plan. 设置密码
Autres apprentissages connexes :

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer