Maison > base de données > Redis > Redis est monothread, mais pourquoi est-il si efficace ?

Redis est monothread, mais pourquoi est-il si efficace ?

(*-*)浩
Libérer: 2019-11-21 14:34:56
original
3748 Les gens l'ont consulté

Redis est monothread, mais pourquoi est-il si efficace ?

Pas besoin de consommation de performances de divers verrous                                                                                                                                                                                                                                  Il ne s'agit pas uniquement de simples valeurs-clés, mais également de structures complexes telles que la liste et le hachage. Ces structures peuvent être très performantes. opérations précises, telles que l'ajout d'un élément après une longue liste, l'ajout ou la suppression d'un objet du hachage. Ces opérations peuvent nécessiter l'ajout d'un grand nombre de verrous, ce qui entraîne une surcharge de synchronisation considérablement accrue. En bref,

Dans le cas d'un seul thread, il n'est pas nécessaire de prendre en compte divers problèmes de verrouillage. Il n'y a pas d'opérations de verrouillage et de libération du verrou, et il n'y a pas de consommation de performances causée par d'éventuels blocages.

Solution de cluster multi-processus monothread

La puissance du monothreading est en fait très puissante et l'efficacité de chaque cœur est également très élevée .Le multithreading est naturellement meilleur que le monothread. Les threads ont une limite supérieure de performances plus élevée, mais dans l'environnement informatique actuel, même la limite supérieure du multithread sur une seule machine ne peut souvent pas répondre aux besoins. -solutions de clustering de serveurs La technologie multithread de ces solutions est toujours la même. Un cluster multi-processus monothread est donc une solution à la mode.

Consommation du processeur

Utilise un seul thread pour éviter les changements de contexte et les conditions de concurrence inutiles, et il n'y a pas de commutation causée par multi-processus ou multi-thread. Consomme du processeur.

Mais que se passe-t-il si le processeur devient le goulot d'étranglement de Redis, ou si vous ne voulez pas que les autres cœurs de processeur du serveur soient inactifs ? Vous pouvez envisager de démarrer plusieurs processus Redis supplémentaires. Redis est une base de données clé-valeur, pas une base de données relationnelle, et il n'y a aucune contrainte entre les données. Tant que le client sait quelles clés sont placées dans quel processus Redis, tout ira bien.

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!

Étiquettes associées:
source: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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal