La différence entre la Mémoire cache et la Mémoire de la Base de données
Je me demandais si je pouvais avoir une explication entre les différences entre la Mémoire cache(redis, memcache), En Mémoire des grilles de données (gemfire) et de la base de données En Mémoire (VoltDB). Je vais avoir du mal à distinguer les principales caractéristiques entre les 3.
OriginalL'auteur Yolo49 | 2016-05-03
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas à propos de gemfire et VoltDB, mais même memcached et redis sont très différentes. Memcached est vraiment simple de mise en cache, un endroit pour stocker des variables dans un très uncomplex de la mode, et puis les récupérer si vous n'avez pas à aller à un fichier ou une base de données de recherche chaque fois que vous besoin de ces données. Les types de variables sont très simples. Redis sur l'autre main est en fait une mémoire de base de données, avec une très intéressante sélection de types de données. Il a un merveilleux type de données pour faire des listes triées, qui fonctionne très bien pour des applications telles que des tableaux de classement. Vous ajoutez votre nouvel enregistrement de données, et qu'il ne soit trié automatiquement.
Donc je ne serais pas trop accroché sur les catégories. Vous avez vraiment besoin d'examiner chaque outil différemment pour voir ce qu'il peut faire pour vous, et l'application que vous êtes en train de construire. C'est un peu comme essayer de faire des comparaisons sur des bases de données nosql - ils sont tous très différents, et de faire des choses différentes.
OriginalL'auteur CargoMeister
Je voudrais ajouter que les choses dans le "base de données" catégorie ont tendance à avoir plus de fonctionnalités pour protéger et répliquer vos données qu'une simple "cache". Cache temporaire (généralement) où, comme données de base de données doit être persistante. De nombreuses solutions de cache que j'ai vu ne sont pas conservées sur le disque, donc si vous avez perdu de la puissance à l'ensemble de votre cluster, vous perdez tout dans le cache.
Mais il y a quelques cache des solutions qui ont de la persistance et de fonctionnalités de réplication trop, de sorte que la ligne est floue.
Les étiquettes de devenir difficile. Mais en général, quelque chose appelé un "DB" (Base de données) va avoir plus de fonctionnalités pour assurer l'intégrité des données, la sécurité des données et de récupération de données. Une "grille" est peut-être plus axé sur la vitesse et le regroupement plutôt que l'intégrité des données. Aussi le terme de "grille" certainement implique plusieurs nœuds, probablement masterless, où une base de données en mémoire peuvent être entièrement sur un nœud.
OriginalL'auteur Beaker
Cache - Par définition, il est stocké dans la mémoire. Toutes les données stockées dans la mémoire vive (RAM) pour un accès plus rapide est appelée cache. Exemples: Ehcache, Memcache, en général, vous mettez un objet dans le cache avec Chaîne en tant que Clé et accéder à la cache à l'aide de la Clé. C'est très simple. Il dépend de l'application lors de l'accès à la cahce vs base de données et pas d'un traitement complexe qui se passe dans le Cache. Si le cache s'étend sur plusieurs machines, puis il est appelé cache distribué. Par exemple, Netflix utilise EVCAche qui est construit au-dessus de Memcache pour stocker les utilisateurs des recommandations de films que vous voyez sur l'écran d'accueil.
Dans la Mémoire de la Base de données - Il a toutes les caractéristiques d'un Cache et de traitement/interrogation de capacités. Redis tombe dans cette catégorie. Redis prend en charge plusieurs structures de données et vous pouvez interroger les données dans le Redis ( exemples comme obtenir 10 dernières consulté les articles, obtenir le plus d'élément utilisé, etc). Il peut s'étendre sur plusieurs machine et est généralement de très haute performance et également en charge la persistance sur le disque si nécessaire. Par exemple, Twitter utilise Redis base de données pour stocker les informations de la timeline.
OriginalL'auteur VimalKumar