¿Es posible usar Redis como caché de resultados de la base de datos?

Redis solo admite la caducidad explícita en lugar del esquema utilizado menos recientemente (LRU) como memcached. Mientras todos los datos que está almacenando en caché encajen en la memoria, esto no es un problema, sin embargo, si de repente desborda la capacidad, Redis comenzará a intercambiarse en el disco, lo que degradará seriamente el rendimiento de la aplicación. En otras palabras, si juzga mal sus requisitos, usar Redis como caché puede degradar el rendimiento de la aplicación de una manera que memcache, por diseño, no lo hará.

Si está a la altura de la necesidad de un almacenamiento en caché pesado, puede ser importante considerar si la complejidad adicional de hacer la contabilidad / ingeniería requerida para hacer un rendimiento de caché expirado explícitamente vale los tipos de datos adicionales que Redis proporciona.

Realmente deseo que alguien combine memcached y Redis (o simplemente agregue LRU a Redis).

memcache + persistence = membase ( http://www.membase.org/ ), solo para agregar a lo que Ben deseaba. Dejando a un lado Membase, la reconstrucción de la memoria caché después de que falla un nodo de memoria caché también es un factor importante a tener en cuenta, ya que dependiendo del tamaño y la estrategia de la memoria caché, esto podría llevar mucho tiempo con el almacenamiento en caché agresivo o días con almacenamiento en caché oportunista. Entonces, persistir el caché (suena oxímoron) puede ser importante en ciertas arquitecturas. Como otros aludieron, expirar la clave sería un desafío (Redis admite el comando EXPIRE, pero debe especificar la expiración explícitamente), por lo que la complejidad se transfiere de la resolución de un tipo de problema a otro. Si los datos que se almacenan en caché no son muy volátiles, se prefiere usar Redis ya que la invalidación de caché no es una operación frecuente. Puede desactivar la persistencia, pero eso no daría lugar a un comportamiento de LRU.

Para resumir, usar Redis tiene sentido si el costo de reconstruir el caché es inaceptable en su sistema.

Por supuesto. Y creo que también es una buena idea. Si tiene varios servidores web, supongamos que tiene una gran cantidad de usuarios, es posible que desee probar un clúster de caché que use
un grupo de redis como backend.

Los resultados de Mutil-fetch también son importantes para que pueda lograr un mayor rendimiento.

Puede echar un vistazo a fengsp / rc para obtener más detalles. Esta biblioteca viene con un tutorial básico que también le dice cómo almacenar en caché el resultado de la base de datos, Tutorial – documentación de rc 0.1