Maison > Article > base de données > Introduction au fichier de configuration Redis
1. Instructions de début
Il n'y a rien à dire ici. sera utilisé plus tard. Lors de la taille, vous pouvez spécifier l'unité, généralement sous la forme de k, gb, m, et l'unité n'est pas sensible à la casse.
2. INCLUT
Nous savons que Redis n'a qu'un seul fichier de configuration. Si plusieurs personnes le développent et le maintiennent, alors plusieurs. Pour un tel fichier de configuration, plusieurs fichiers de configuration peuvent être configurés ici via include /path/to/local.conf, et le fichier de configuration redis.conf d'origine sert de porte principale.
ps : Si vous avez utilisé le développement struts2, lorsque plusieurs personnes développent dans l'équipe de projet, il y aura généralement plusieurs fichiers struts2.xml, qui seront également introduits via la configuration de la classe.
De plus, si vous écrivez cette configuration au début du fichier redis.conf, alors la configuration suivante écrasera la configuration du fichier importé. Si vous souhaitez vous concentrer sur la configuration du fichier importé, vous devez inclure La configuration est écrite à la fin du fichier redis.conf.
3. MODULES
La fonctionnalité explosive de redis3.0 est le nouveau cluster, et redis4.0 est en 3.0 Many de nouvelles fonctions ont été ajoutées sur cette base, parmi lesquelles la configuration du module personnalisé ici en fait partie. Grâce à la configuration du module de chargement ici, des modules personnalisés seront introduits pour ajouter de nouvelles fonctions.
4. RÉSEAU
ps : La configuration ici est longue, je n'en ai intercepté qu'une partie, la même ci-dessous.
①, bind : lie l'adresse IP de la carte réseau du serveur Redis, la valeur par défaut est 127.0.0.1, qui est l'adresse de bouclage locale. Dans ce cas, l'accès au service Redis ne peut se faire que via la connexion client locale, mais pas via des connexions distantes. Si l'option de liaison est vide, les connexions de toutes les interfaces réseau disponibles seront acceptées.
②, port : Spécifiez le port sur lequel redis s'exécute. La valeur par défaut est 6379. Étant donné que Redis est un modèle monothread, le port sera modifié lorsque plusieurs processus Redis sont ouverts sur une seule machine.
③, timeout : Définissez le délai d'expiration lorsque le client se connecte, en secondes. Lorsque le client ne donne aucune instruction pendant cette période, la connexion est fermée. La valeur par défaut est 0, ce qui signifie aucun arrêt.
④, tcp-keepalive : L'unité est en secondes, ce qui signifie que SO_KEEPALIVE sera utilisé périodiquement pour détecter si le client est toujours dans un état sain afin d'éviter que le serveur soit bloqué à tout moment. La valeur officielle recommandée est. 300s, s'il est réglé sur 0, il ne sera pas détecté périodiquement.
5. GÉNÉRAL
Détails de configuration détaillés :
①, démoniser : définir sur oui pour spécifier Redis Démarrez en tant que démon (démarrez en arrière-plan). La valeur par défaut est no
②, pidfile : configurez le chemin du fichier PID lorsque redis est exécuté en tant que processus démon, il écrira le pid dans le fichier /var/redis/run/redis_6379.pid par défaut.
③, loglevel : Définissez le niveau de journalisation. La valeur par défaut est notice, avec les 4 valeurs suivantes :
debug (enregistre une grande quantité d'informations de journal, adapté aux phases de développement et de test)
verbeux (plus d'informations de journal)
avis (quantité appropriée d'informations de journal, utilisée dans l'environnement de production)
avertissement (seules certaines informations importantes et critiques seront enregistrées)
④, fichier journal : configurer le journal L'adresse du fichier est imprimée par défaut sur la fenêtre du terminal de ligne de commande
⑤, bases de données : définissez le nombre de bases de données. La base de données par défaut est DB 0. Vous pouvez utiliser la commande select
6. SNAPSHOTTING
La configuration ici est principalement utilisée pour les opérations de persistance.
①, save : Ceci est utilisé pour configurer les conditions de persistance qui déclenchent Redis, c'est-à-dire quand enregistrer les données en mémoire sur le disque dur. La configuration par défaut est la suivante :
save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存 save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存 save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存
Bien sûr, si vous utilisez uniquement la fonction de mise en cache de Redis et n'avez pas besoin de persistance, vous pouvez alors commenter toutes les lignes de sauvegarde pour désactiver la fonction de sauvegarde. Vous pouvez utiliser directement une chaîne vide pour réaliser la désactivation : save ""
②, stop-writes-on-bgsave-error : La valeur par défaut est yes. Lorsque RDB est activé et que la dernière sauvegarde des données en arrière-plan échoue, si Redis cesse de recevoir des données. Cela permettrait à l'utilisateur de se rendre compte que les données n'ont pas été correctement conservées sur le disque, sinon personne ne remarquerait qu'un sinistre s'est produit. Si Redis redémarre, il peut recommencer à recevoir des données
③、rdbcompression ;默认值是yes。对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
④、rdbchecksum :默认值是yes。在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。
⑤、dbfilename :设置快照的文件名,默认是 dump.rdb
⑥、dir:设置快照文件的存放路径,这个配置项一定是个目录,而不能是文件名。使用上面的 dbfilename 作为保存的文件名。
7、REPLICATION
①、slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:
1) 如果为 yes ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候
2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误
②、slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。
③、repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。
④、repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。 这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。从站则要排队等待下一次RDB传送。因此服务器等待一段 时间以期更多的从站到达。延迟时间以秒为单位,默认为5秒。要关掉这一功能,只需将它设置为0秒,传送会立即启动。默认值为5。
⑤、repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。
Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。
8、SECURITY
①、rename-command:命令重命名,对于一些危险命令例如:
flushdb(清空数据库)
flushall(清空所有记录)
config(客户端连接后可配置服务器)
keys(客户端连接后可查看所有存在的键)
作为服务端redis-server,常常需要禁用以上命令来使得服务器更加安全,禁用的具体做法是是:
rename-command FLUSHALL ""
也可以保留命令但是不能轻易使用,重命名这个命令即可:
rename-command FLUSHALL abcdefg
这样,重启服务器后则需要使用新命令来执行操作,否则服务器会报错unknown command。
9、CLIENTS
①、maxclients :设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。 描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
10、MEMORY MANAGEMENT
①、maxmemory:设置客户端最大并发连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件。描述符数-32(redis server自身会使用一些),如果设置 maxclients为0 。表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息。
②、maxmemory-policy :当内存使用达到最大值时,redis使用的清楚策略。有以下几种可以选择:
1) volatile-lru Utilisez l'algorithme LRU pour supprimer les clés qui ont expiré (LRU : Les moins récemment utilisées)
2) allkeys-lru Utilisez l'algorithme LRU pour supprimer toutes les clés
3) volatile-random supprime les clés aléatoires avec un délai d'expiration défini
4) allkeys-random supprime les clés aléatoires
5) volatile-ttl supprime les clés qui sont sur le point d'expirer (TTL mineur)
6) noeviction noeviction ne supprime aucune clé, renvoie simplement une erreur d'écriture, l'option par défaut est
③, maxmemory-samples : ni les algorithmes LRU ni les algorithmes TTL minimaux ne sont des algorithmes précis, mais un algorithme relativement précis (pour économiser de la mémoire). Vous pouvez choisir la taille de l'échantillon à tester à volonté. Redis sélectionne 3 échantillons à tester par défaut. Vous pouvez définir le nombre d'échantillons via maxmemory-samples.
11. APPEND ONLY MODE
①, appendonly : par défaut, redis utilise la persistance rdb. est suffisant pour de nombreuses applications. Cependant, si Redis tombe en panne au milieu, cela peut entraîner une perte de données pendant plusieurs minutes. La persistance est effectuée selon la stratégie de sauvegarde Append Only File est une autre méthode de persistance qui peut fournir de meilleures caractéristiques de persistance. Redis écrira chaque donnée écrite dans le fichier appendonly.aof après l'avoir reçu. À chaque démarrage, Redis lira d'abord les données de ce fichier dans la mémoire et ignorera d'abord le fichier RDB. La valeur par défaut est non.
②, appendfilename : nom du fichier aof, la valeur par défaut est "appendonly.aof"
③, appendfsync : configuration de la stratégie de persistance aof, aucun moyen de ne pas exécuter fsync, et le système d'exploitation garantit ; la synchronisation des données sur le disque, qui est la plus rapide ; signifie toujours que fsync est exécuté pour chaque écriture pour garantir que les données sont synchronisées sur le disque toutes les secondes ; signifie que fsync est exécuté une fois par seconde, ce qui peut entraîner la perte des 1 ; data
④, no-appendfsync -on-rewrite : lorsque aof est en train de réécrire ou d'écrire dans un fichier rdb, une grande quantité d'E/S sera effectuée à ce moment-là, pour chaque seconde et toujours en mode aof, en exécutant fsync. entraînera un blocage pendant une longue période, les paramètres du champ no-appendfsync-on-rewrite sont définis sur no par défaut.
Si l'application a des exigences de latence élevées, ce champ peut être défini sur oui, sinon il peut être défini sur non, ce qui est un choix plus sûr pour la fonctionnalité de persistance. Le définir sur yes signifie que les nouvelles opérations d'écriture ne seront pas fsyncd pendant la réécriture, et seront temporairement stockées dans la mémoire et seront écrites une fois la réécriture terminée. La valeur par défaut est non, et oui est recommandé. La politique fsync par défaut de Linux est de 30 secondes. 30 secondes de données peuvent être perdues. La valeur par défaut est non.
⑤, pourcentage de réécriture automatique : la valeur par défaut est 100. aof configuration de réécriture automatique, lorsque la taille actuelle du fichier aof dépasse le pourcentage de la dernière taille du fichier aof réécrit, il sera réécrit, c'est-à-dire que lorsque le fichier aof atteint une certaine taille, Redis peut appeler bgrewriteaof pour réécrire le fichier journal. Lorsque la taille actuelle du fichier AOF est deux fois supérieure à celle du fichier AOF obtenu lors de la dernière réécriture du journal (définie sur 100), un nouveau processus de réécriture du journal est automatiquement démarré.
⑥, taille minimale de réécriture automatique : 64 Mo. Définissez la taille minimale du fichier AOF qui peut être réécrit pour éviter la réécriture lorsque le pourcentage convenu est atteint mais que la taille est encore petite.
⑦, aof-load-truncated : Le fichier aof peut être incomplet à la fin. Lorsque Redis démarre, les données du fichier aof sont chargées dans la mémoire. Le redémarrage peut se produire après que le système d'exploitation hôte où se trouve Redis soit en panne, en particulier si le système de fichiers ext4 n'ajoute pas l'option data=ordered. Ce phénomène se produit. Un temps d'arrêt de Redis ou une terminaison anormale ne rendront pas la queue incomplète. Vous pouvez choisir de laisser Redis se fermer ou d'importer autant de données que possible.
Si oui est sélectionné, lorsque le fichier aof tronqué est importé, un journal sera automatiquement publié sur le client puis chargé. Si ce n’est pas le cas, l’utilisateur doit revérifier manuellement aof pour réparer le fichier AOF. La valeur par défaut est oui.
12. LUA SCRIPTING
①, lua-time-limit : La durée maximale d'exécution d'un script Lua, en mme. La valeur par défaut est 5000.
13. REDIS CLUSTER
①, activé pour le cluster : commutateur de cluster, la valeur par défaut n'est pas pour activer le modèle de cluster.
②, cluster-config-file : Le nom du fichier de configuration du cluster. Chaque nœud possède un fichier de configuration lié au cluster, qui enregistre de manière persistante les informations du cluster. Ce fichier ne nécessite pas de configuration manuelle. Ce fichier de configuration est généré et mis à jour par Redis. Chaque nœud de cluster Redis nécessite un fichier de configuration distinct. Veuillez vous assurer qu'il n'y a pas de conflit avec le nom du fichier de configuration dans le système sur lequel l'instance est exécutée. La configuration par défaut est nodes-6379.conf.
③, cluster-node-timeout : La valeur peut être configurée sur 15 000. Seuil de délai d'expiration de l'interconnexion des nœuds, millisecondes du délai d'expiration du nœud de cluster
④, cluster-slave-validity-factor : La valeur peut être configurée sur 10. Lors du basculement, tous les esclaves demanderont à devenir maîtres, mais certains esclaves peuvent avoir été déconnectés du maître pendant un certain temps, ce qui rend les données trop obsolètes. Ces esclaves ne doivent pas être promus maîtres. Ce paramètre permet de déterminer si le nœud esclave a été déconnecté du maître pendant trop longtemps.
La méthode de jugement est la suivante : comparer le temps de déconnexion de l'esclave et (node-timeout * slave-validity-factor) + repl-ping-slave-period Si le délai d'expiration du nœud est de trente secondes, et slave-validity -factor est 10, en supposant que la période repl-ping-slave-period par défaut est de 10 secondes, c'est-à-dire que si elle dépasse 310 secondes, l'esclave ne tentera pas de basculement
⑤, cluster-migration-barrier : la valeur peut être configuré comme 1. Si le numéro d'esclave du maître est supérieur à cette valeur, l'esclave peut être migré vers d'autres maîtres isolés. Si ce paramètre est défini sur 2, alors seulement lorsqu'un nœud maître a 2 nœuds esclaves fonctionnels, l'un de ses nœuds esclaves tentera de migrer. .
⑥, cluster-require-full-coverage : Par défaut, tous les emplacements du cluster sont responsables des nœuds, et ce n'est que lorsque l'état du cluster est ok que les services peuvent être fournis. Définissez sur no pour fournir des services lorsque tous les emplacements ne sont pas alloués. Il n'est pas recommandé d'activer cette configuration, car cela obligerait le maître de la petite partition à toujours accepter les demandes d'écriture pendant le partitionnement, ce qui entraînerait une incohérence des données pendant une longue période.
Pour plus de connaissances sur Redis, veuillez faire attention à la colonne Tutoriel de 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!