¿Qué piensan las empresas y los ingenieros de software que experimentan con Redis?

Utilizamos Redis en la producción que contiene varios millones de objetos de datos.
Nos quedamos con postgresql los últimos años, como servidor SQL.

La necesidad de almacenamiento en caché es obvia para todos los que enfrentan tráfico significativo. Como el almacenamiento en caché se puede realizar utilizando un simple almacenamiento de clave / valor, se puede optimizar, para ser muy rápido en comparación con las bases de datos reales que enfrentan problemas de concurrencia y persistencia. Esto da como resultado un servidor de almacenamiento en caché de E / S ligero y sin bloqueo como memcached, que puede manejar más carga de la que podría darse cuenta con un servidor SQL que proporciona los mismos recursos.

Así que Memcached era el camino a seguir antes de que Redis apareciera.

¿Qué tiene de especial Redis en comparación con memcached / membase?
Redis es un superconjunto de memcached (no membase). Te ofrece todo
ofertas memcached, y mucho más.

Entonces, reemplazamos memcached con Redis solo porque funcionó tan bien como memcached, pero nos permitió persistencia.

Después de usar redis durante 1 año, utilizamos todos los tipos de datos que ofrece.
Tener listas, conjuntos, hash es realmente un encanto en algunas situaciones.

Todo lo que ofrece redis también podría realizarse con servidores SQL (especialmente postgresl, hstore, arrays …) pero Redis es más rápido en todos los aspectos.

Imagínese realizar una cola en SQL, esto es simple en SQL, pero no tan sencillo como lo es con Redis.

Entonces el punto importante es:
Los tipos de datos ofrecidos por Redis reducen la complejidad de su aplicación, ya que no tiene que engañar para obtener lo que desea en comparación con las soluciones de SQL o memcached, y lo hace de una manera más rápida.

También Redis, permite la persistencia y la memoria virtual, que son aspectos importantes, incluso difíciles, creo que todavía hay algunos problemas. (Otro problema es la escalabilidad).

En el backend de nuestra aplicación (Wunderlist) estamos usando cada vez más Redis.

Estamos usando Redis para:

  • necesidades de almacenamiento en caché estándar (para reducir la carga en nuestra base de datos)
  • estadísticas (incrementos diarios de contador, conjuntos de ID de usuario activos diarios, etc.)
  • colas para trabajos asincrónicos

Mi opinión:
Redis demostró ser una buena opción si necesita hacer los temas mencionados anteriormente con solo una herramienta. Su característica de ser “en su mayoría persistente” (solo pierde los últimos 3-5 segundos en un reinicio del servidor) y el soporte incorporado para listas (también conocidas como colas) y conjuntos (también conocidos como arrays) fueron la razón principal para nosotros en contra de una combinación de los sistemas de mensajería Memcached plus.