Redis implémente la mise en cache d'environ deux manières :
1. Synchronisation des scripts :
1. . Écrivez votre propre script pour écrire les données de la base de données dans redis/memcached. (Apprentissage recommandé : Tutoriel vidéo Redis)
2. Cela implique la question des modifications de données en temps réel (analyse en temps réel du binlog de ligne mysql), de l'abonnement incrémentiel de binlog au canal d'Alibaba, et mise en cache Problème de récupération de synchronisation des données après perte/invalidité des données de couche.
2. Implémentation de la couche métier :
1. Lisez d'abord la couche de cache nosql, puis lisez la couche mysql s'il n'y a pas de données et écrivez les données dans nosql. .
2. La couche nosql est prête pour la distribution multi-nœuds (hachage cohérent), ainsi que pour les alternatives après une défaillance du nœud (hachage multicouche pour trouver des nœuds de remplacement adjacents), et le choc des données a été restauré.
Analyse de l'implémentation redis de la mise en cache de la base de données :
Pour les données qui changent très rapidement, si vous choisissez toujours les méthodes de mise en cache statique traditionnelles (Memocached, File System, etc.) L'affichage des données peut impliquer une surcharge importante en matière d'accès au cache, ce qui ne peut pas répondre correctement aux besoins. Les bases de données NoSQL basées sur la mémoire comme Redis sont très adaptées pour servir de conteneurs pour les données en temps réel.
Cependant, il existe souvent des exigences en matière de fiabilité des données. L'utilisation de MySQL comme stockage de données n'entraînera pas de perte de données en raison de problèmes de mémoire. En même temps, vous pouvez également utiliser les caractéristiques des bases de données relationnelles pour implémenter de nombreuses fonctions. Il est donc naturel de se demander si MySQL peut être utilisé comme moteur de stockage de données et Redis comme cache.
Le schéma de réplication de données MySQL vers Redis, MySQL et Redis, ont leur propre mécanisme de synchronisation des données. Le mode MySQL maître/esclave le plus couramment utilisé est implémenté par le côté esclave analysant le journal binaire du maître, la réplication des données est donc en fait. un processus asynchrone, mais lorsque les serveurs sont tous sur le même intranet, le délai asynchrone est presque négligeable.
Théoriquement, la même méthode peut être utilisée pour analyser le fichier binlog MySQL et insérer les données dans Redis.
Par conséquent, une méthode de développement moins coûteuse est choisie ici, en empruntant l'UDF MySQL déjà relativement mature, en plaçant d'abord les données MySQL dans Gearman, puis en synchronisant les données avec Gearman via un PHP Gearman Worker auto-écrit. . Par rapport à la méthode d'analyse du binlog, elle ajoute de nombreux processus, mais le coût de mise en œuvre est inférieur et elle est plus facile à utiliser.
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!