Maison > Article > base de données > Pourquoi les projets Web devraient-ils introduire Redis ?
redis est une base de données Nosql et un système de stockage clé-valeur. Bien que Redis soit un système de stockage clé-valeur, Redis prend en charge de nombreux types de stockage de valeurs, tels que les chaînes, les listes chaînées, les ensembles, les ensembles ordonnés et les hachages.
Redis est un système de stockage clé-valeur. Semblable à Memcached, il prend en charge relativement plus de types de valeurs stockées, notamment string (string), list (liste chaînée), set (set), zset (ensemble trié - ensemble ordonné) et hash (type de hachage). Ces types de données prennent tous en charge les opérations push/pop, ajout/suppression, intersection, union, différence et plus riches, et ces opérations sont toutes atomiques. Sur cette base, Redis prend en charge différentes méthodes de tri. Comme Memcached, les données sont mises en cache en mémoire pour garantir l'efficacité. La différence est que Redis écrira périodiquement les données mises à jour sur le disque ou écrira les opérations de modification dans des fichiers d'enregistrement supplémentaires, et sur cette base, la synchronisation maître-esclave (maître-esclave) est obtenue.
Redis est une base de données clé-valeur hautes performances. L'émergence de Redis a largement compensé les défauts du stockage clé/valeur tel que Memcached, et peut jouer un très bon rôle complémentaire aux bases de données relationnelles dans certaines situations. Il fournit Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang et d'autres clients, ce qui est très pratique à utiliser.
Redis prend en charge la synchronisation maître-esclave. Les données peuvent être synchronisées du serveur maître vers n'importe quel nombre de serveurs esclaves, et le serveur esclave peut être un serveur maître associé à d'autres serveurs esclaves. Cela permet à Redis d'effectuer une réplication d'arborescence à un seul niveau. La sauvegarde peut écrire des données intentionnellement ou non. Étant donné que le mécanisme de publication/abonnement est entièrement implémenté, lorsque la base de données esclave synchronise l'arborescence n'importe où, elle peut s'abonner à un canal et recevoir l'enregistrement complet de publication des messages du serveur maître. La synchronisation est utile pour l'évolutivité et la redondance des données des opérations de lecture.
Redis est entièrement open source et gratuit, est conforme au protocole BSD et constitue une base de données clé-valeur hautes performances.
Redis prend en charge cinq types de données : string (string), hash (hash), list (list), set (set) et zset (ensemble trié : ensemble ordonné).
Redis présente les trois caractéristiques suivantes avec d'autres produits de cache clé-valeur :
Redis prend en charge la persistance des données et peut enregistrer les données en mémoire sur le disque et les charger à nouveau lors du redémarrage pour utilisation.
Redis prend non seulement en charge les données de type clé-valeur simples, mais fournit également le stockage de structures de données telles que liste, ensemble, zset et hachage.
Redis prend en charge la sauvegarde des données, c'est-à-dire la sauvegarde des données en mode maître-esclave.
Avantages de Redis
Performances extrêmement élevées – Redis peut lire à une vitesse de 110 000 fois/s et écrire à une vitesse de 81 000 fois/s.
Types de données riches – Redis prend en charge les opérations de type de données Chaînes, Listes, Hachages, Ensembles et Ensembles ordonnés pour les cas binaires.
Atomique – Toutes les opérations Redis sont atomiques, ce qui signifie qu'elles sont exécutées avec succès ou pas du tout. Les opérations individuelles sont atomiques. Les opérations multiples prennent également en charge les transactions, c'est-à-dire l'atomicité, encapsulées par les instructions MULTI et EXEC.
Fonctionnalités riches – Redis prend également en charge la publication/abonnement, les notifications, l'expiration des clés et d'autres fonctionnalités.
Quelle est la différence entre Redis et les autres magasins clé-valeur ?
Redis a des structures de données plus complexes et fournit des opérations atomiques sur celles-ci. Il s'agit d'un chemin évolutif différent des autres bases de données. Les types de données de Redis sont basés sur des structures de données de base et sont transparents pour les programmeurs, sans nécessiter d'abstractions supplémentaires.
Redis s'exécute en mémoire mais peut être conservé sur le disque, la mémoire doit donc être pesée lors de la lecture et de l'écriture à grande vitesse de différents ensembles de données, car la quantité de données ne peut pas être supérieure à la mémoire matérielle. Un autre avantage des bases de données en mémoire est que par rapport aux mêmes structures de données complexes sur disque, le fonctionnement en mémoire est très simple, donc Redis peut faire beaucoup de choses avec une forte complexité interne. De plus, en termes de format de disque, ils sont générés de manière compacte car ils ne nécessitent pas d'accès aléatoire.
Alors pourquoi utiliser une base de données Nosql comme Redis ?
1. Lorsque la taille totale des données ne peut pas tenir dans une seule machine ;
2. Lorsque l'index des données ne peut pas tenir dans la mémoire d'une seule machine ; Visitez le volume (lire Écriture mixte) lorsqu'une instance ne peut pas tenir.
À l'ère autonome, une seule machine est utilisée pour installer MySQL pour le stockage. Si des milliers de données sont stockées à chaque fois, cela entraînera de mauvaises performances de MySQL, un stockage et une vitesse de lecture lents. et puis cela évoluera dans la méthode cache + mysql + division verticale.
Le cache, en tant qu'ère de cache intermédiaire, enregistre d'abord toutes les données dans le cache, puis les stocke dans MySQL, réduisant ainsi la pression sur la base de données et améliorant l'efficacité.
Mais lorsque les données augmentent à nouveau jusqu'à un autre ordre de grandeur, la méthode ci-dessus ne peut pas répondre à la demande. À mesure que la pression d'écriture de la base de données augmente, le cache ne peut que soulager la pression de lecture de la base de données. La concentration de la lecture et de l'écriture sur une seule base de données surcharge la base de données. La plupart des sites Web ont commencé à utiliser la technologie de réplication maître-esclave pour séparer la lecture et l'écriture afin d'améliorer les performances de lecture et d'écriture et l'évolutivité des bases de données de lecture. Le mode maître-esclave de MySQL est actuellement devenu la norme pour les sites Web.
À l'ère du mode de séparation maître-esclave, sur la base du cache Redis, de la réplication maître-esclave MySQL et de la séparation lecture-écriture, la pression d'écriture de la base de données principale MySQL a commencé à apparaître des goulots d'étranglement et la quantité de données a continué à augmenter. MyISAM utilise des verrous de table, ce qui peut entraîner de graves problèmes de verrouillage en cas de concurrence élevée. Un grand nombre d'applications MySQL à haute concurrence ont commencé à utiliser le moteur InnoDB au lieu de MyISAM. Avantages de la base de données Nosql :
1. Facile à étendre
Ces types de stockage de données ne nécessitent pas de modèles fixes et peuvent être étendus horizontalement sans opérations redondantes. Par rapport aux bases de données relationnelles, le nombre de tables et de champs peut être réduit. Il apporte également des fonctionnalités évolutives au niveau architectural
2. Un grand volume de données améliore les performances
3. Modèles de données diversifiés et flexibles
.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!