Un cache distribué est essentiel pour toute application qui exige des performances rapides lors de charges de transactions extrêmes. Un cache distribué en mémoire est plus performant qu'une base de données. De plus, il peut fournir une évolutivité linéaire dans la gestion de charges de transactions plus importantes car il peut facilement vous permettre d'ajouter plus de serveurs au cluster de cache qu'un serveur de base de données ne peut pas faire.
Malgré tous ces avantages, il reste un problème. Dans la plupart des cas, un cache distribué est hébergé sur un ensemble de serveurs de cache dédiés sur le réseau, de sorte que votre application doit effectuer des allers-retours sur le réseau pour récupérer des données. Et ce n'est pas aussi rapide que d'accéder aux données localement et surtout à partir du processus de candidature. C'est là que le cache client est utile.
In NCacheun cache client maintient une connexion ouverte au cluster de cache distribué et reçoit notifications d'événements du cluster de cache chaque fois que les données du cache client y sont modifiées. Un cluster de cache distribué connaît l'emplacement des éléments de données parmi les caches client, de sorte que les notifications d'événements sont envoyées uniquement au cache client concerné au lieu de les diffuser à tous les caches client.
NCache Détails Cache Client Notifications d'événements dans le cache
Comment fonctionne le cache client ?
Un cache client n'est rien d'autre qu'un cache local sur votre serveur Web/d'applications, mais il est conscient du cache distribué tout en y étant connecté. De plus, un cache client peut être en cours (un cache client existe dans votre application) ou hors processus. Cela permet à un cache client d'offrir des performances de lecture beaucoup plus rapides que même le cache distribué et, en même temps, de garantir que les données du cache client sont toujours synchronisées avec le cache distribué.
Cependant, un cache distribué notifie le cache client de manière asynchrone après avoir correctement mis à jour les données dans le cluster de cache distribué. Techniquement, cela signifie qu'il existe une petite fenêtre de temps (en millisecondes) pendant laquelle certaines des données du cache client sont plus anciennes que le cache distribué. Maintenant, dans la plupart des cas, cela est parfaitement acceptable pour les applications. Mais, dans certains cas, les applications exigent une précision à 100 % des données.
Donc, pour gérer de telles situations, NCache fournit également un modèle de synchronisation pessimiste pour le cache client. Dans ce modèle, chaque fois que l'application tente d'extraire quoi que ce soit du cache client, le cache client vérifie d'abord si le cache distribué possède une version plus récente du même élément mis en cache. Si tel est le cas, le cache client extrait une version plus récente du cache distribué. Maintenant, ce voyage vers le cache distribué a son coût, mais il est toujours plus rapide que de récupérer l'élément mis en cache entièrement à partir du cache distribué.
Quand utiliser un cache client ?
Après avoir lu ce blog, la principale question qui vient à l'esprit est de savoir quand utiliser un cache client et quand ne pas l'utiliser. Eh bien, la réponse est assez simple. Si votre ou vos applications effectuent plus de lectures que d'écritures, utilisez un cache client, en particulier si les mêmes éléments reviennent sans cesse.
Si vos applications effectuent de nombreuses mises à jour (ou au moins autant que les lectures), n'utilisez pas de cache client car les mises à jour sont plus lentes avec un cache client. Cela se produit puisque vous mettez à jour deux caches différents maintenant, le cache client et le cache distribué.
Conclusion
Alors, NCache vous permet de profiter du cache client avec un cache distribué. Téléchargez une version d'essai complète de 60 jours de NCache Enterprise et essayez-le par vous-même.
Votre blog est vraiment intéressant, continuez à publier des articles aussi informatifs !