Memcached vs. Redis comparé

Memcached vs. Redis comparé
Il existe deux options concurrentes pour les bases de données de paires de valeurs clés en mémoire; Redis et memcached. Ce sont tous deux des bases de données gratuites et open-source en mémoire qui offrent une faible latence pour l'accès aux données.

Malgré ces similitudes, cela peut être tout un défi qui choisit lequel utiliser pour vos applications.

Dans cet article, nous décomposons les aspects essentiels d'une base de données en mémoire et les comparerons.

Définition

Commençons par les bases et discutons de ce qui est Redis et de ce qui est Memcached?

Qu'est-ce que Redis?

Le serveur de dictionnaire distant ou Redis pour Short est défini comme une base de données gratuite en open source en mémoire utilisée comme courtier en cache ou en messages. Il a été développé en 2009 par Salvatore Sanfilippo et alimente désormais les systèmes populaires tels que Ster Twitter, Stackoverflow, GitHub, etc.

Qu'est-ce que Memcached?

Memcached est défini comme une base de données en mémoire gratuite, open-source et haute performance. Il est utilisé pour fournir un mécanisme de mise en cache pour les applications mais agit génériquement.

Il a été développé en 2004 par Brad Fitzpatrick et est maintenant utilisé par des applications populaires telles que Twitter, Facebook, YouTube, Instagram, Udemy, Slack, etc.

Support de langue et de plate-forme

Redis est écrit en ANSI C et fonctionne dans tous les systèmes POSIX. Redis est pris en charge dans les systèmes Linux, BSD et OSX. La prise en charge de Windows n'est pas encore disponible à partir de la rédaction de ce tutoriel.

Memcached est écrit en ANSI C mais multiplateforme. Bien qu'il n'y ait pas de version officielle de Memcached pour Windows, vous pouvez trouver des implémentations Cygwin de la base de données ou la compiler pour votre plateforme.

Stockage de données

Redis a plusieurs structures de données, qui sont très adaptées à de nombreux besoins. Il prend en charge les types de données tels que:

  1. Cordes
  2. Listes
  3. Sets
  4. Hachage
  5. Ensembles triés
  6. Bitmaps
  7. Hyperlogs
  8. Index géospatiaux
  9. Ruisseaux

Redis vous permet également d'effectuer des opérations automatiques telles que l'ajout de chaînes, le calcul de l'union d'ensemble, la différence, l'intersection, etc., Ajouter un élément à une liste, etc.

Memcached, en revanche, prend en charge les cordes binaires simples. Cela le rend facile à utiliser et utilise moins de frais généraux de mémoire que redis.

Architecture

Redis et memcached suivent une architecture client-serveur. Cependant, Redis est unique tandis que Memcached est multithread.

Partitionnement des données

Redis et Memcached soutiennent la distribution des données sur divers nœuds.

Latence

Étant donné que Redis et Memcached sont des bases de données en mémoire, ils fournissent une latence inférieure à des millisecondes.

Effacement du cache

Redis et Memcached vous permettent de nettoyer le cache en utilisant les commandes Flushall ou FlushDB et Flush_all.

Évolutivité

Redis et Memcached vous permettent de s'étendre à mesure que vos données se développent. Cependant, Redis évolue bien horizontalement tandis que Memcached profite bien à l'évolutivité verticale

Politique d'expulsion

Redis soutient une collection de politiques d'expulsion qui peuvent être personnalisées en fonction de vos besoins.

Consultez notre tutoriel sur les politiques d'expulsion Redis pour en savoir plus.

D'un autre côté, Memcached est limité à la politique d'expulsion du LRU.

Facilité d'utilisation / documentation

Redis est très bien documentation et a une grande communauté derrière elle. Cela le rend très facile à apprendre et à utiliser.

Bien que Memcached soit général et relativement documenté, vous devrez peut-être creuser dans le code source pour implémenter des fonctionnalités personnalisées.

Gestion de base de données

Redis vous fournit un utilitaire CLI intégré pour accéder et gérer vos bases de données et votre serveur Redis.

Memcached utilise Telnet pour connecter et gérer votre serveur.

Protocole de communication

Redis utilise le protocole de connexion TCP ou les prises de type Unix sans support pour UDP.

Memcached prend en charge les protocoles TCP et UDP.

Réplication

Redis propose une simple implémentation de réplication maître-esclave. Il est sans effort d'utiliser et de configurer. La réplication créera des copies exactes de l'instance de maître, quelle que soit ce qui arrive au maître.

Memcached ne soutient pas nativement la réplication. Cependant, vous pouvez implémenter la réplication des données à l'aide d'outils de correctifs tels que http: // repcached.laboratoire.klab.org /

Persistance / instantanés

Redis native prend en charge les instantanés en enregistrant un instantané de vos ensembles de données sur un disque dans un fichier binaire. Cependant, vous pouvez personnaliser les fonctionnalités d'instantané dans Redis.fichier de confr.

Pour la persévérance, Redis soutient:

  1. Persistance RDB
  2. Aof Persistance.

Vérifiez notre tutoriel sur Redis Persistance pour explorer plus loin.

Memcached ne supporte pas nativement le dépotoir de disque. Cependant, vous pouvez utiliser des outils tels que memcached-dd pour implémenter.

Il n'y a pas de persistance de données pour memcached.

Script côté serveur

Redis prend en charge les scripts côté serveur à l'aide d'un interprète LUA intégré. Il utilise les fonctions EVAM et EVAMSHA pour évaluer les scripts LUA.

Gardez à l'esprit que les scripts Lua dans Redis sont synchrones. Par conséquent, d'autres opérations sont bloquées lorsque les scripts s'exécutent.

Memcached ne prend pas en charge les scripts côté serveur.

Pub / sub

Redis soutient le modèle de messagerie publique de publication.

Memcached n'a aucun support pour le modèle de messagerie de pub-sub.

Ruisseaux

Redis prend en charge les flux avec l'ajout de types de flux redis dans Redis version 5.0

Memcached ne prend pas en charge les flux nativement. Cependant, vous pouvez utiliser des outils tels que Kafcache pour implémenter des flux.

https: // github.com / jpzk / kafcache

Soutien géospatial

Redis est livré avec le support natif pour les données géospatiales en temps réel. Cependant, Memcached n'a pas de structure de données pour prendre en charge les données géospatiales.

Gestion des transactions

Bien que Memcached utilise les opérations atomiques, elle ne prend pas en charge les transactions.

Par défaut, Redis prend en charge les transactions pour exécuter les commandes.

Clients / langages de programmation

Redis soutient presque tous les principaux langages de programmation. Les listes de clients prises en charge sont les indications ci-dessous:

  • ActionScript
  • Activex / com+
  • Frapper
  • Boomi
  • C
  • C #
  • C++
  • Se cacher
  • Lisp commun
  • Cristal
  • D
  • Dard
  • Delphes
  • Élixir
  • Emacs Lisp
  • Erlang
  • Fantaisie
  • rester bouche bée
  • GNU Prolog
  • Aller
  • Haskell
  • Haxe
  • Io
  • Java
  • Julia
  • Kotlin
  • Lasso
  • Lua
  • Matlab
  • mrop
  • Nim
  • Nœud.js
  • Objectif c
  • Ocaml
  • Pascal
  • Perler
  • Php
  • PL / SQL
  • Prolog
  • Données pures
  • Python
  • R
  • Raquette
  • Réchauffer
  • Rubis
  • Rouiller
  • Scala
  • Schème
  • Smalltalk
  • Rapide
  • Tcl
  • Vb
  • Vcl
  • Xojo

Memcached n'est pas laissé pour compte et fournit aux clients des langages de programmation majeurs. Cependant, il est court dans la liste des clients par rapport à redis.

Ils comprennent:

  • .FILET
    • Enyim
    • Beit
  • C
    • libmemcached
  • C++
    • Libmemcached
    • Mcache-client
  • Fusion froide
    • cfspymemcached
  • Erlang
    • Ancre
  • Élixir
    • Memcache
  • Java
    • Spymemémère
    • Xmemcached
    • Gwhalin Memcached Client
  • Zézayer
    • Cl memcached
  • Lua
    • Lua-Resest-Memcached
  • Ocaml
    • OCAML
  • Perler
    • Perl-cache memcached
  • Php
    • Memcached-php
    • Memcache
    • Réprimandé par PHP
  • Python
    • Pymemcache
    • Python

Support cloud

Les fournisseurs de cloud suivants prennent en charge Redis:

  1. Google Cloud comme mémoire
  2. Amazon AWS comme redis
  3. Microsoft Azure comme cache Azure
  4. Cloud Alibaba comme asparadb
  5. Oracle
  6. Cloud IBM

Les fournisseurs suivants soutiennent également Memcached:

  1. Google Cloud comme mémoire
  2. Amazon AWS comme Amazon Elasticache
  3. Microsoft Azure
  4. Cloud Alibaba comme asparadb
  5. IBM Cloud comme Memcached par Bitnami

Dernières pensées.

Ce tutoriel fournit une répartition complète des similitudes et des différences de redis et de bases de données Memcached. Gardez à l'esprit que ce tutoriel sert de référence à l'information. Utilisez-le pour faire un choix en fonction de vos exigences.

Happy Coding et vous voir dans le prochain!!!