Si sólo vamos a almacenar en caché los resultados de la consulta directamente basado en la cadena de consulta, el caché de consultas de Mysql ya lo hace por usted. No reinventar la rueda. La única diferencia de potencial es que la caché de consultas de Mysql está invalidada de manera agresiva, por lo que nunca se devuelven los datos obsoletos (desactualizados); Dependiendo de cómo maneje la invalidación, su estrategia puede reducir aún más la carga de la base de datos, pero a costa de presentar datos caducados y desactualizados de forma regular.
Además, realmente no podrá caducar selectivamente sus diversas claves de caché cuando se produzcan las actualizaciones (¿cómo sabría qué cadenas de consulta deberían expirar cuando se ejecuta una inserción/actualización?); como resultado, solo tendrá que establecer un tiempo de caducidad corto (probablemente en segundos), para minimizar la cantidad de tiempo que está sirviendo datos obsoletos. Esto probablemente significará una baja tasa de aciertos de caché. Al final, la estrategia de caché que describes es simple de implementar, pero no es muy efectiva.
Asegúrese de leer el "Generic Design Approaches" section de las preguntas frecuentes memecached. Una buena estrategia de almacenamiento en caché elimina/reemplaza los datos almacenados en caché inmediatamente cuando se producen las actualizaciones; esto le permite almacenar datos en caché durante horas/días/semanas, y al mismo tiempo nunca entregar datos desactualizados a los usuarios.
¿Encuentras algo que te ayude? –