sql >> Base de Datos >  >> NoSQL >> Redis

¿Memcached es un dinosaurio en comparación con Redis?

Depende de lo que necesites, en general pienso que:

  • No deberías preocuparte demasiado por las actuaciones. Redis es más rápido por núcleo con valores pequeños, pero memcached puede usar múltiples núcleos con un único puerto TCP y ejecutable sin la ayuda del cliente. También memcached es más rápido con valores grandes del orden de 100k. Redis recientemente mejoró mucho sobre los valores grandes (rama inestable), pero aún así Memcached es más rápido en este caso de uso. El punto aquí es:ni uno ni el otro serán su cuello de botella para la consulta por segundo que pueden entregar.
  • Debe preocuparse por el uso de la memoria. Para pares clave-valor simples, Memcached es más eficiente en memoria. Si usa hashes de Redis, Redis es más eficiente con la memoria. Depende del caso de uso.
  • Debe preocuparse por la persistencia y la replicación, dos funciones que solo están disponibles en Redis. Incluso si su objetivo es construir un caché, ayuda que después de una actualización o un reinicio, sus datos aún estén allí.
  • Debe preocuparse por el tipo de operaciones que necesita. En Redis hay muchas operaciones complejas, incluso considerando el caso de uso de almacenamiento en caché, a menudo puede hacer mucho más en una sola operación, sin necesidad de que los datos se procesen en el lado del cliente (a veces se necesita mucha E/S). Estas operaciones suelen ser tan rápidas como GET y SET. Entonces, si no necesita solo GET/SET sino cosas más complejas, Redis puede ayudar mucho (piense en el almacenamiento en caché de la línea de tiempo).

Sin un caso de uso, es difícil elegir el correcto ahora, pero creo que para muchas cosas, Redis tiene sentido, ya que incluso cuando no desea usarlo como base de datos, al ser mucho más capaz, puede resolver más problemas. no solo almacenamiento en caché, sino también mensajería, clasificación, etc.

PD. por supuesto, podría ser parcial ya que soy el desarrollador principal del proyecto Redis.