He trabajado bastante con memcached las últimas semanas y me acabo de enterar de Redis. Cuando leí esta parte de su archivo Léame, de repente tuve una sensación cálida y acogedora en el estómago:
Redis se puede usar como memcached en esteroides porque es tan rápido como memcached pero con una serie de características más. Al igual que Memcached, Redis también admite la configuración de tiempos de espera para las teclas para que esta clave se elimine automáticamente cuando pase una cantidad de tiempo determinada.
Esto suena asombroso. También encontré esta página con puntos de referencia: http://www.ruturaj.net/redis-memcached-tokyo-tyrant-mysql-comparison
Entonces, honestamente, ¿Memcache es realmente ese viejo dinosaurio que es una mala elección desde una perspectiva de rendimiento en comparación con este recién llegado llamado Redis?
No he escuchado mucho sobre Redis anteriormente, ¡por lo tanto, el enfoque para mi pregunta!
fuente
Respuestas:
Memcache es una excelente herramienta aún y MUY confiable.
en lugar de ver este problema desde la perspectiva de quién es más rápido en el rango de <100 ms, observe el rendimiento por "clase" del software.
fuente
Depende de lo que necesites, en general creo que:
Sin un caso de uso es difícil elegir el en este momento, pero creo que para muchas cosas Redis tiene sentido ya que incluso cuando no quieres usarlo como DB, siendo mucho más capaz puedes resolver más problemas, no solo el almacenamiento en caché, sino incluso los mensajes, la clasificación, etc.
PD, por supuesto, podría ser parcial ya que soy el desarrollador principal del proyecto Redis.
fuente
Redis
tiene mucha más funcionalidad;Redis
también es mucho más fácil. No se requieren dependencias;Redis
también es mejor;memcached
es un poco más rápido queRedis
. No toca el disco en absoluto;Redis
es mejor producto quememcached
.fuente
Lo que Memcached hace que Redis no hace es el desalojo de los valores de la memoria caché menos utilizado recientemente. Con memcached, puede establecer de forma segura tantos valores como desee, y cuando desborden la memoria, se eliminarán los que no haya utilizado recientemente. Con Redis, solo puede aproximarse a esto, configurando un tiempo de espera en todo; cuando necesite liberar memoria, buscará tres claves aleatorias y eliminará la que esté más cerca de caducar.
Esa es la principal diferencia, si solo lo está utilizando como caché.
fuente
También es posible que desee ver Membase.
http://www.northscale.com/products/membase_server.html
No lo he usado, pero parece ser similar a Redis en que es una tienda KV centrada en la memoria con persistencia. Las principales diferencias con respecto a lo que puedo ver son:
Redis tiene un único nivel de descarga de datos en el disco (VM) basado en un algoritmo híbrido que considera tanto la LRU como el tamaño del objeto.
Membase utiliza el protocolo de cable de memoria caché, útil como ruta de actualización para aplicaciones existentes
La elección puede depender del grado en que su aplicación pueda aprovechar la funcionalidad adicional de manipulación de datos en Redis.
fuente
Hazelcast admite el protocolo memcached de forma nativa
https://web.archive.org/web/20140601010929/http://hazelcast.org/docs/latest/manual/html-single/hazelcast-documentation.html
y por lo tanto es una alternativa moderna a memcached. Debe probar todas las soluciones para ver qué funciona mejor para usted.
fuente