Redis est une base de données non relationnelle en mémoire. Les données sont stockées en mémoire et la vitesse de lecture de la mémoire est très rapide s'il ne s'agit que d'une simple valeur-clé. la mémoire n’est pas le goulot d’étranglement. En général, les recherches de hachage peuvent atteindre des millions de fois par seconde. (Apprentissage recommandé : Tutoriel vidéo Redis)
Utiliser un seul thread pour éviter les changements de contexte inutiles et les conditions de concurrence
L'implémentation interne utilise epoll , en utilisant un cadre d'événements simple implémenté par epoll+ lui-même. Lire, écrire, fermer et se connecter dans epoll sont tous convertis en événements, puis utilisez la fonction de multiplexage d'epoll pour ne jamais perdre de temps sur io
Parce que les opérations Redis sont très rapides— —Tous ses les données sont en mémoire et il n’est pas du tout nécessaire d’accéder au disque. En ce qui concerne la concurrence, Redis utilise la technologie de multiplexage d'E/S multicanal, et sa propre efficacité de concurrence n'est pas un problème.
Bien sûr, un seul processus Redis ne peut pas utiliser plusieurs cœurs (il ne peut s'exécuter que sur un seul cœur de processeur à la fois), mais ce n'est pas un service très gourmand en calcul. Si les performances monocœur ne suffisent pas, vous pouvez ouvrir plusieurs processus supplémentaires.
Redis adopte un modèle monothread, qui garantit l'atomicité de chaque opération et réduit le changement de contexte de thread et la concurrence.
De plus, la structure des données est également très utile. Redis utilise une structure de hachage tout au long du processus, qui a une vitesse de lecture rapide. Il existe également des structures de données spéciales qui optimisent le stockage des données, telles que les tables de compression. . Compressez et stockez des données courtes, un autre exemple est celui des tables de sauts et utilisez des structures de données ordonnées pour accélérer la lecture.
Un autre point est que Redis utilise son propre séparateur d'événements, qui est relativement efficace, il utilise une méthode d'exécution non bloquante en interne et a une capacité de débit relativement importante.
type de chaîne, binaire sûr
type de hachage, est une collection de paires clé-valeur
La couche inférieure de la liste List est une liste chaînée
collection d'ensembles Pas besoin d'utiliser hashtale pour implémenter
ensemble de tri zset ensemble ordonné
Pour plus d'articles techniques liés à Redis, veuillez visiter le Tutoriel d'introduction à l'utilisation de la base de données Redis rubrique pour apprendre !
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!