Fil unique et hautes performances de Redis

Redis est-il monothread ?

Le thread unique de Redis signifie principalement que les E/S réseau de Redis et la lecture et l'écriture des paires clé-valeur sont effectuées par un seul thread.C'est également le processus principal par lequel Redis fournit des services de stockage clé-valeur au monde extérieur. Mais d'autres fonctions de Redis, telles que la persistance, la suppression asynchrone, la synchronisation des données du cluster, etc., sont en réalité exécutées par des threads supplémentaires.

Pourquoi Redis est-il monothread si rapide ?

Étant donné que toutes ses données sont en mémoire, toutes les opérations sont des opérations au niveau de la mémoire et un seul thread évite la perte de performances liée à la commutation multithread. Étant donné que Redis est monothread, vous devez être prudent lorsque vous utilisez les instructions Redis. Pour les instructions qui prennent du temps (telles que les clés), vous devez les utiliser avec prudence. Si vous ne faites pas attention, Redis peut se bloquer.

Comment le thread unique Redis gère-t-il autant de connexions client simultanées ?

Multiplexage d'E/S de Redis : Redis utilise epoll pour implémenter le multiplexage d'E/S, en plaçant les informations de connexion et les événements dans la file d'attente, puis dans le répartiteur d'événements de fichier. Le répartiteur d'événements distribue les événements au processeur d'événements.
insérer la description de l'image ici

Vérifiez le nombre maximum de connexions supportées par redis, qui peut être modifié dans le fichier redis.conf, # maxclients 10000

127.0.0.1:6379> CONFIG GET maxclients
    ##1) "maxclients"
    ##2) "10000"

Je suppose que tu aimes

Origine blog.csdn.net/qq_43802454/article/details/121181759
conseillé
Classement