Maison  >  Article  >  base de données  >  Quelle est la différence entre Redis et Memcache ?

Quelle est la différence entre Redis et Memcache ?

青灯夜游
青灯夜游original
2019-06-17 11:02:2912078parcourir

Redis et Memcache sont tous deux des systèmes de stockage de données basés sur la mémoire. Memcached est un service de cache mémoire distribué hautes performances, qui est essentiellement une base de données clé-valeur en mémoire. Redis est un système de stockage clé-valeur open source. Semblable à Memcached, Redis stocke la plupart des données en mémoire. Les types de données pris en charge incluent : les chaînes, les tables de hachage, les listes chaînées, les ensembles, les ensembles ordonnés et les opérations associées basées sur ces types de données. Alors, quelle est la différence entre Memcache et Redis ?

Quelle est la différence entre Redis et Memcache ?

1. Différentes opérations sur les données

Contrairement à Memcached qui ne prend en charge que les enregistrements de données avec des structures clé-valeur simples, Redis prend en charge les données. les types sont beaucoup plus riches. Memcached ne prend en charge que le stockage simple clé-valeur, ne prend pas en charge l'énumération, la persistance, la réplication et d'autres fonctions. Redis prend en charge les opérations de données côté serveur. Par rapport à Memcached, Redis a plus de structures de données et prend en charge de nombreuses structures de données telles que la liste, l'ensemble, l'ensemble trié, le hachage, etc., et fournit également des fonctions de persistance et de réplication. .

Habituellement, dans Memcached, les utilisateurs doivent transmettre les données au client pour effectuer des modifications similaires, puis les réinitialiser, ce qui augmente considérablement le nombre d'E/S réseau et le volume de données. Dans Redis, ces opérations complexes sont généralement aussi efficaces que les GET/SET classiques. Par conséquent, si vous avez besoin du cache pour prendre en charge des structures et des opérations plus complexes, Redis sera un meilleur choix.

2. Différents mécanismes de gestion de la mémoire

Dans Redis, toutes les données ne sont pas toujours stockées en mémoire. C'est la plus grande différence par rapport à Memcached. Lorsque la mémoire physique est épuisée, Redis peut échanger certaines valeurs qui n'ont pas été utilisées depuis longtemps sur le disque. Redis mettra uniquement en cache toutes les informations de clé. Si Redis constate que l'utilisation de la mémoire dépasse un certain seuil, Redis calcule quelles clés correspondent à la valeur en fonction de l'échange sur le disque "swappability = age*log(size_in_memory)". . Ensuite, les valeurs correspondant à ces clés sont conservées sur le disque et effacées en mémoire. Cette fonctionnalité permet à Redis de conserver des données qui dépassent la taille de la mémoire de sa machine elle-même.

Memcached utilise le mécanisme d'allocation de dalles par défaut pour gérer la mémoire. L'idée principale est de diviser la mémoire allouée en blocs d'une longueur spécifique en fonction de la taille prédéterminée pour stocker des enregistrements de données clé-valeur de la longueur correspondante. résoudre complètement le problème de fragmentation de la mémoire.

En termes d'utilisation de la mémoire, l'utilisation de la mémoire de Memcached est plus élevée si un simple stockage clé-valeur est utilisé. Si Redis utilise une structure de hachage pour le stockage clé-valeur, son utilisation de la mémoire sera supérieure à celle de Memcached en raison de sa compression combinée.

3. Performances différentes

Étant donné que Redis n'utilise qu'un seul cœur, alors que Memcached peut utiliser plusieurs cœurs, en moyenne, Redis a de meilleures performances que Memcached lors du stockage de petites données. sur chaque noyau plus haut. Pour les données de plus de 100 000 données, les performances de Memcached sont supérieures à celles de Redis. Bien que Redis ait également optimisé les performances de stockage du Big Data, elles restent légèrement inférieures à celles de Memcached.

4. Gestion de cluster différente

Memcached est un système de mise en mémoire tampon de données complète. Bien que Redis prenne en charge la persistance des données, la mémoire complète est après tout sa haute performance. En tant que système de stockage basé sur la mémoire, la taille de la mémoire physique de la machine correspond à la quantité maximale de données que le système peut accueillir. Si la quantité de données à traiter dépasse la taille de la mémoire physique d'une seule machine, un cluster distribué doit être créé pour étendre les capacités de stockage.

Memcached lui-même ne prend pas en charge la distribution, donc le stockage distribué de Memcached ne peut être implémenté sur le client que via des algorithmes distribués tels que le hachage cohérent. Par rapport à Memcached, qui ne peut utiliser le client que pour implémenter le stockage distribué, Redis préfère créer un stockage distribué côté serveur.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn