Usamos Redis o Memcached para Drupal?

Desde que arranqué con Drupal he usado memcached para mejorar la performance del cache de Drupal. ¿Debería cambiar y usar Redis ahora?

Tags: 

Con la llegada de Drupal8 muchas cosas cambiaron, una de esas es un movimiento lateral hacia Redis para manejar las tablas de cache. Lo que me llamó la atención es que ahora hay como una nube negra sobre Memcached.

Que lo caracteriza a cada uno:
  • Memcached hace solo una cosa y lo hace bien. Guarda pares de llave/valor en memoria.
  • Si comparamos específicamente ese trabajo, Redis lo hace con una eficiencia/velocidad muy parecida a memcached (solo un poco mejor). La diferencia es que Redis puede hacer mas cosas.

Si estamos desarrollando una plataforma nueva esto es un buen argumento en favor de Redis. Es mas complicado, lleva mas tiempo aprenderlo, pero podremos hacer mas cosas. Para mi lo mas interesante es el diseño escalable que tiene.

¿Cuando elegir cual?
  • Si ya están usando Memcached, yo lo seguiría usando. No veo razón para cambiar inmediatamente.
  • Si tienen un proveedor que solo provee uno de los dos, simplemente usen ese. Siempre es mejor tener un servicio que nos permita acelerar el caché que usar la base de datos.
  • Si no están usando ninguno, elijan uno y empiecen a usarlo. Ambos van a mejorar la performance.

Drupal7 tiene módulos estables para ambos: memcache y Redis. En la charla que di sobre Drupal performance hay mas detalles de como hacerlo.

Si ya comenzaron a usar Drupal8 o estan haciendo un desarrollo nuevo que necesita mejorar su velocidad de respuesta agregándole caché yo al menos evaluaría también Redis. Para Drupal hay versiones alpha que integra cualquiera de los dos.

Quienes soportan que en el mundo Drupal: Acquia solo soporta memcached. Pantheon y Platform solo soportan Redis.

Si quieren saber mas les recomiendo leer (todo en inglés):