1. Introduction
Au cours des dernières années, lorsqu'il s'agit de solutions de haute concurrence et de stockage massif de données, nous pensons aux bases de données NoSQL et aux solutions correspondantes. les produits font preuve naturellement d’une grande vitalité. Parmi les nombreux produits, on distingue Redis, MongoDB, BerkeleyDB et CouchDB. Expliquons-le brièvement ci-dessous.
(Partage vidéo d'apprentissage : tutoriel vidéo Redis)
1 BerkeleyDB est une base de données intégrée open source extrêmement populaire qui peut être utilisée comme moteur de stockage dans plus de situations. Par exemple, BerkeleyDB a été utilisé comme moteur de stockage de MySQL avant d'être acquis par Oracle. On peut prédire que ce produit a une excellente évolutivité simultanée, prend en charge les transactions et les transactions imbriquées, le stockage massif de données et d'autres fonctionnalités importantes, et est utilisé pour stocker des données réelles. données temporelles. Il a une valeur utilisable extrêmement élevée. Cependant, il convient de souligner que la licence de ce produit est GPL, ce qui signifie que son utilisation n'est pas gratuite dans tous les cas.
2. MongoDB est défini comme un serveur de base de données orienté document. Contrairement à BerkeleyDB, cette base de données peut fonctionner de manière indépendante et fournir des services de données associés comme les autres serveurs de bases de données relationnelles. De la documentation officielle de ce produit, nous pouvons apprendre que MongoDB est principalement adapté aux forums ou aux sites de blogs à haute concurrence. Les principales caractéristiques de ces sites Web sont un nombre élevé de visites simultanées, plus de lectures et moins d'écritures, de grandes quantités de données et des relations logiques simples. et les documents comme source de données principale, etc. Comme BerkeleyDB, la licence de ce produit est GPL.
3. Redis, un serveur de base de données NoSQL typique, comparé à BerkeleyDB, il peut s'exécuter indépendamment sur son propre serveur hôte en tant que programme de service. Souvent, les gens considèrent Redis simplement comme un serveur de base de données clé/valeur, mais ce n'est pas le cas dans la version actuelle, en plus de la clé/valeur, Redis prend également en charge les structures de données telles que la liste, le hachage, l'ensemble et l'ensemble ordonné. , donc les utilisations sont également plus larges. Concernant ce malentendu, le site officiel de Redis a également fourni des éclaircissements correspondants. Différente des deux produits ci-dessus, la licence de Redis est la licence Apache, qui est entièrement gratuite pour le moment.
4. memcached, serveur de mise en cache des données. Pourquoi une explication de ce produit est-elle donnée ici ? Très simple, car je pense qu'il ressemble le plus à Redis en termes d'utilisation. Après tout, il s'agit d'une série de blogs techniques sur Redis. C'est pourquoi nous comparerons brièvement ces deux produits. Parlons d'abord de la plus grande différence entre eux. Memcached fournit uniquement un service de mise en cache des données. Une fois le serveur en panne, toutes les données précédemment mises en cache dans la mémoire disparaîtront. Par conséquent, on peut voir que memcached ne fournit aucune forme de mise en cache. la fonction de persistance des données Redis fournit une telle fonctionnalité. De plus, Redis fournit des structures de stockage de données plus riches, telles que Hash et Set. Quant à leurs similitudes, il y a deux points principaux. L’un est qu’ils sont totalement gratuits et l’autre est que les formulaires de commande qu’ils proposent sont très similaires.
2. Avantages de Redis :
1. Par rapport à d'autres produits NoSQL, Redis est extrêmement facile à utiliser, donc pour les développeurs qui ont de l'expérience dans l'utilisation de produits similaires, vous pouvez utiliser Redis. pour construire votre propre plateforme en deux jours voire quelques heures.
2. Tout en résolvant de nombreux problèmes courants, il fournit également des solutions pertinentes à certains problèmes personnalisés, tels que les moteurs d'indexation, les classements statistiques, les services de file d'attente de messages, etc.
3. Les principaux problèmes de Redis dans la version actuelle :
1. La version officielle ne prend pas en charge la plate-forme Windows. La version officielle publiée ne prend en charge que les plates-formes de type Unix et MacOSX.
2. La prise en charge du cluster n'est pas fournie. Cependant, selon le site officiel, cette fonctionnalité devrait être ajoutée dans la version 2.6.
3. Dans la fonction Publication/Abonnement, si le maître tombe en panne, l'esclave ne peut pas être automatiquement promu maître.
4. Comparaison avec les bases de données relationnelles :
Dans la version actuelle (2.4.7) de Redis, il prend en charge cinq types de données différents, dont un seul type La chaîne. Le type peut être considéré comme une structure clé-valeur, et d'autres types de données ont des scénarios d'application adaptés à leurs caractéristiques respectives. Quant aux détails spécifiques, nous les expliquerons dans un blog ultérieur de cette série.
Par rapport aux bases de données relationnelles, en raison de sa structure de stockage relativement simple, Redis ne fournit pas un bon support pour les relations logiques complexes. Cependant, dans les scénarios applicables à Redis, nous pouvons l'utiliser pour obtenir des améliorations significatives en termes d'efficacité. Malgré cela, Redis nous fournit toujours quelques concepts de base qu'une base de données devrait avoir, tels que : vous pouvez choisir d'ouvrir différentes bases de données dans la même connexion. Cependant, la différence est que les bases de données dans Redis sont nommées par des numéros. la base de données ouverte sous est 0. Si vous envisagez de changer de base de données pendant l'exécution du programme, vous pouvez utiliser la commande Redis select pour ouvrir d'autres bases de données, telles que select 1. Si vous souhaitez revenir ultérieurement à la base de données par défaut, exécutez simplement select 0.
En termes de stockage de données, Redis suit l'idée dominante des bases de données NoSQL existantes, c'est-à-dire que la clé sert d'identifiant unique pour la récupération des données. Nous pouvons simplement la comprendre comme la clé de l'index dans la base de données relationnelle, tandis que Value sert de stockage de données. L'objet principal, chaque valeur est associée à une clé, qui est comme l'emplacement où les données physiques de l'index sont stockées dans la table de données. Dans Redis, Value sera considéré comme un flux d'octets binaires utilisé pour stocker des données dans n'importe quel format, tel que Json, XML et des flux d'octets d'objets sérialisés, etc., nous pouvons donc également l'imaginer comme un champ de type BLOB dans RDB. On peut voir que lors de l'exécution d'une requête de données, nous ne pouvons utiliser Key que comme condition de notre requête. Bien sûr, nous pouvons également appliquer certaines techniques fournies dans Redis pour utiliser Value comme clé d'autres données. Nous couvrirons ces connaissances dans. les blogs suivants présentent.
5. Comment conserver les données en mémoire :
Par défaut, Redis fera référence au nombre de modifications de données dans la base de données actuelle, et après avoir atteint un certain seuil, l'instantané de la base de données fera être stocké dans Sur le disque, nous pouvons définir le seuil via le fichier de configuration. Normalement, nous pouvons également configurer Redis pour qu'il enregistre régulièrement. Par exemple, lorsque plus de 1 000 données clés sont modifiées, Redis effectuera une opération de persistance des données toutes les 60 secondes. Le paramètre par défaut est que s'il y a 9 modifications de données ou moins, Redis persistera toutes les 15 minutes.
Comme le montre la solution mentionnée ci-dessus, si cette méthode est adoptée, l'efficacité d'exécution de Redis sera très efficace chaque fois qu'une nouvelle modification de données se produit, seules les données mises en cache changeront. ne pas être conservé immédiatement sur le disque, évitant ainsi les E/S disque dans la plupart des opérations de modification. Cependant, les choses ont souvent deux faces. Dans cette méthode, nous gagnons en efficacité, mais nous perdons en fiabilité des données. Si le serveur sur lequel se trouve Redis tombe en panne avant que l'instantané de mémoire ne soit conservé sur le disque, toutes les données modifiées qui n'ont pas été écrites sur le disque seront perdues. Afin de garantir une haute fiabilité des données, Redis fournit également un autre mécanisme de persistance des données : le mode Append. Si le serveur Redis est configuré de cette manière, chaque fois qu'une modification des données se produit, elle sera immédiatement conservée sur le disque.
Recommandations associées : Tutoriel sur la 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!