A pesar de estas similitudes, puede ser un gran desafío elegir cuál usar para sus aplicaciones.
En este artículo, desglosaremos los aspectos esenciales de una base de datos en memoria y los compararemos.
Definición
Comencemos en lo básico y discutamos qué es Redis y qué es Memcached?
Que es Redis?
El servidor de diccionario remoto o Redis para abreviar se define como una base de datos gratuita en memoria de código abierto utilizada como corredor de caché o mensajes. Fue desarrollado en 2009 por Salvatore Sanfilippo y ahora impulsa sistemas populares como Twitter, Stackoverflow, Github, etc.
Que es memcached?
Memcached se define como una base de datos gratuita, de código abierto y de alto rendimiento en memoria. Se utiliza para proporcionar un mecanismo de almacenamiento en caché para las aplicaciones, pero actúa genéricamente.
Fue desarrollado en 2004 por Brad Fitzpatrick y ahora es utilizado por aplicaciones populares como Twitter, Facebook, YouTube, Instagram, Udemy, Slack, etc.
Soporte de idioma y plataforma
Redis está escrito en Ansi C y funciona en todos los sistemas POSIX. Redis es compatible con los sistemas Linux, BSD y OSX. El soporte de Windows aún no está disponible al escribir este tutorial.
Memcached está escrito en Ansi C pero multiplataforma. Aunque no hay una versión oficial de Memcached para Windows, puede encontrar implementaciones de Cygwin de la base de datos o compilarla para su plataforma.
Almacenamiento de datos
Redis tiene múltiples estructuras de datos, que son muy adecuadas para muchas necesidades. Admite tipos de datos como:
Redis también le permite realizar operaciones automáticas, como agregar a las cuerdas, calcular la unión establecida, la diferencia, la intersección, etc., agregar un elemento a una lista, etc.
Memcached, por otro lado, admite cuerdas binarias simples. Esto hace que sea fácil de usar y usa menos sobrecarga de memoria que Redis.
Arquitectura
Tanto Redis como Memcached siguen una arquitectura de cliente cliente. Sin embargo, Redis es un solo subproceso, mientras que Memcached es multiproceso.
División de datos
Tanto Redis como Memcached admiten la distribución de datos en varios nodos.
Latencia
Dado que tanto Redis como Memcached son bases de datos en memoria, proporcionan latencia de sub-milisegundos.
Limpieza de caché
Redis y Memcached le permiten borrar la memoria caché usando los comandos Flushall o FlushDB y FLUSH_ALL.
Escalabilidad
Tanto Redis como Memcached le permiten escalar a medida que sus datos crecen. Sin embargo, Redis escala bien horizontalmente, mientras que Memcached se beneficia bien en la escalabilidad vertical
Política de desalojo
Redis admite una colección de políticas de desalojo que se pueden personalizar de acuerdo con sus necesidades.
Consulte nuestro tutorial sobre las políticas de desalojo de redis para obtener más información.
Por otro lado, Memcached se limita a la Política de desalojo de LRU.
Facilidad de uso/documentación
Redis es una documentación muy bien y tiene una gran comunidad detrás de esto. Esto hace que sea muy fácil de aprender y usar.
Aunque Memcached es general y relativamente documentado, es posible que deba profundizar en el código fuente para implementar características personalizadas.
Gestión de base de datos
Redis le proporciona una utilidad CLI incorporada para acceder y administrar sus bases de datos y Redis Server.
Memcached usa Telnet para conectar y administrar su servidor.
Protocolo de comunicación
Redis utiliza el protocolo de conexión TCP o los enchufes similares a Unix sin soporte para UDP.
Memcached admite protocolos TCP y UDP.
Replicación
Redis ofrece una implementación simple de replicación maestra-esclavo. Es sin esfuerzo usar y configurar. La replicación creará copias exactas de la instancia maestra, independientemente de lo que le suceda al maestro.
Memcached no admite la replicación de forma nativa. Sin embargo, puede implementar la replicación de datos utilizando herramientas de parche como http: // repcached.laboratorio.klab.org/
Persistencia/instantáneas
Redis es compatible con la instantánea al guardar una instantánea de sus conjuntos de datos en un disco en el archivo binario. Sin embargo, puede personalizar las funciones de instantánea en Redis.archivo conf.
Para persistencia, Redis apoya:
Consulte nuestro tutorial sobre la persistencia de Redis para explorar más.
Memcached no admite el volcado de disco de forma nativa. Sin embargo, puede usar herramientas como MemCached-DD para implementar.
No hay persistencia de datos para Memcached.
Scripting del lado del servidor
Redis admite secuencias de comandos del lado del servidor utilizando un intérprete Lua integrado. Utiliza funciones Eval y Evalsha para evaluar los scripts de Lua.
Tenga en cuenta que los guiones de Lua en Redis son sincrónicos. Por lo tanto, otras operaciones se bloquean cuando los scripts están ejecutando.
Memcached no admite scripting del lado del servidor.
Pub/submarino
Redis admite de forma nativa el modelo de mensajería Publish-Susscribe.
Memcached no tiene soporte para el modelo de mensajería de pub-sub.
Corrientes
Redis admite transmisiones con la adición de los tipos de transmisión Redis en Redis versión 5.0
Memcached no admite transmisiones de forma nativa. Sin embargo, puede usar herramientas como Kafcache para implementar transmisiones.
https: // github.com/jpzk/kafcache
Apoyo geoespacial
Redis viene con apoyo nativo para datos geoespaciales en tiempo real. Sin embargo, Memcached no tiene una estructura de datos para admitir datos geoespaciales.
Gestión de transacciones
Aunque Memcached usa operaciones atómicas, no admite transacciones.
Por defecto, Redis admite las transacciones para ejecutar comandos.
Clientes/lenguajes de programación
Redis admite casi todos los principales lenguajes de programación. Las listas de clientes compatibles son las que se muestran a continuación:
Memcached no se queda atrás y proporciona a los clientes lenguajes de programación importantes. Sin embargo, se queda corto en la lista de clientes en comparación con Redis.
Incluyen:
Soporte de nubes
Los siguientes proveedores de nubes admiten Redis:
Los siguientes proveedores también apoyan a Memcached:
Pensamientos finales.
Este tutorial proporciona un desglose completo de las similitudes y diferencias de las bases de datos Redis y Memcached. Tenga en cuenta que este tutorial sirve como referencia de información. Úselo para elegir en función de sus requisitos.
Feliz codificación y nos vemos en el siguiente!!!