memcached - redis、memcache、mongoDB有哪些区别?
ringa_lee
ringa_lee 2017-04-22 08:56:35
0
3
728

redis、memcache、mongoDB有哪些区别?例如:性能、可靠性、数据一致性等方面的区别。

ringa_lee
ringa_lee

ringa_lee

répondre à tous(3)
Ty80

Le contenu suivant est issu du résumé d'un collègue, publié pour le partager :
Memcached
Avantages de Memcached :
Memcached peut tirer parti du multicœur et le débit d'une seule instance est extrêmement élevé, pouvant atteindre des centaines de milliers de QPS (en fonction de la taille en octets de la clé et de la valeur et des performances du matériel du serveur, le QPS maximal dans l'environnement quotidien est d'environ 4-6w). Convient pour une capacité de charge maximale.
Prend en charge la configuration directe en tant que gestionnaire de session.
Peu d'embûches.
Limitations de Memcached :
Il ne prend en charge que des structures de données clé/valeur simples, contrairement à Redis qui peut prendre en charge des types de données riches.
Il ne peut pas être conservé, les données ne peuvent pas être sauvegardées, elles ne peuvent être utilisées que pour la mise en cache et toutes les données seront perdues après le redémarrage.
La synchronisation des données ne peut pas être effectuée et les données de MC ne peuvent pas être migrées vers d'autres instances MC.
L'allocation de mémoire Memcached utilise le mécanisme d'allocation de dalle pour gérer la mémoire. De grandes différences dans la distribution de la taille des valeurs entraîneront une diminution de l'utilisation de la mémoire et peuvent entraîner des problèmes tels que l'expulsion même lorsque l'utilisation est faible. Les utilisateurs doivent prêter attention à la conception de la valeur.

Redis
Avantages de Redis :
Prend en charge une variété de structures de données, telles que string (string), list (double liste chaînée), dict (table de hachage), set (set), zset (ensemble trié), hyperloglog (estimation de cardinalité)
Prend en charge les opérations de persistance et peut conserver les données AOF et RDB sur le disque pour les opérations de sauvegarde ou de récupération de données, ce qui constitue un meilleur moyen d'éviter la perte de données.
Prend en charge la réplication des données via la réplication. Grâce au mécanisme maître-esclave, la réplication synchrone des données en temps réel peut être effectuée. Il prend en charge la réplication à plusieurs niveaux et la réplication incrémentielle est un moyen important pour Redis d'effectuer la haute disponibilité.
Requête monothread, toutes les commandes sont exécutées en série et il n'est pas nécessaire de prendre en compte les problèmes de cohérence des données dans des situations simultanées.
Prend en charge le mécanisme d'abonnement aux messages pub/sub, qui peut être utilisé pour l'abonnement aux messages et la notification.
Il prend en charge des exigences de transaction simples, mais il existe peu de cas d'utilisation dans l'industrie et il n'est pas mature.

Limitations de Redis :
Redis ne peut utiliser qu'un seul thread et ses performances sont limitées par les performances du processeur. Par conséquent, une seule instance de processeur peut atteindre un maximum de 5 à 6 W QPS par seconde (en fonction de la structure des données, de la taille des données et des performances matérielles du serveur. Le pic. Le QPS dans un environnement quotidien est d'environ 1 à 2 w).
Il prend en charge des exigences de transaction simples, mais il existe peu de scénarios d'utilisation dans l'industrie et il est immature, ce qui présente à la fois des avantages et des inconvénients.
Redis consomme plus de mémoire sur les types de chaînes. Vous pouvez utiliser dict (table de hachage) pour compresser le stockage afin de réduire la consommation de mémoire.

:) Ce qui suit est mon ajout personnel
Mc et Redis sont tous deux des types clé-valeur, qui ne conviennent pas pour établir des relations entre différents ensembles de données, ni pour les recherches de requêtes. Par exemple, l'opération de correspondance des clés modèle de Redis est un désastre pour les performances de Redis.

Mogodb
mogodb est une base de données de documents. Permettez-moi d'abord d'expliquer la base de données de documents, qui peut stocker des données de types XML, JSON et BSON. Ces données sont auto-descriptives et présentent une structure de données hiérarchique de type arborescent. Redis peut utiliser le hachage pour stocker des données relationnelles simples.
mogodb stocke les données au format json.
Scénarios appropriés : enregistrement d'événements, gestion de contenu ou plateformes de blogs, telles que les systèmes de commentaires.

Nosq propose actuellement de nombreux produits, et le choix de l'architecte est principalement motivé par les deux facteurs suivants :
1) Convient aux scénarios d'utilisation d'applications. Par exemple, le système de commentaires est plus adapté à l'utilisation de mogodb, et mc peut également être implémenté (l'application convertit les données en json et les enregistre, mais il n'est pas pratique de mettre à jour certaines données)
2) L'équipe développe des technologies qui lui sont familières. Par exemple, une équipe utilise mc, elle est donc limitée à choisir mc au lieu de redis.
Il existe également des situations moyennes à graves dans lesquelles l'équipe de développement a utilisé mogodb et continue de choisir mogodb dans des scénarios adaptés à kv nosq.

Un livre recommandé à tous : <NoSQL Essence>

巴扎黑

http://segmentfault.net/q/1010000002572713

黄舟

Redis et Memcache sont deux mécanismes de mise en cache, principalement utilisés pour réduire la pression sur la base de données et améliorer la vitesse d'accès. Redis peut enregistrer le cache sur le disque dur et redémarrer l'ordinateur pour continuer à l'appeler. Il possède également de nombreuses fonctions que Memcache n'a pas est simplement mis en cache en mémoire, avec une fonction unique et une grande efficacité. Quant à mongoDB, ce n'est qu'une base de données

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal