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

Usando redis como caché para una base de datos mysql

Sí, redis es bueno para eso. Pero para entender la esencia, existen básicamente dos enfoques para el almacenamiento en caché. Dependiendo de si usa un marco (y cuál) o no, puede tener la primera opción disponible en estándar o con el uso de un complemento:

  1. Consultas de la base de datos de caché, es decir, las consultas seleccionadas y sus resultados se mantendrán en redis para un acceso más rápido durante un tiempo determinado o hasta que se borre el caché (útil después de actualizar la base de datos). En este caso, puede usar el almacenamiento en caché de consultas mysql incorporado, será más simple que usar un almacén de clave-valor adicional, o puede anular la integración de la base de datos predeterminada con su propia clase haciendo uso del caché (por ejemplo, http://pythonhosted.org /johnny-cache/).
  2. Almacenamiento en caché personalizado, es decir, crear sus propias estructuras para guardarlas en caché y rellenarlas de forma periódica o manual con datos extraídos de la base de datos. Es más flexible y potencialmente más potente, ya que puede usar funciones integradas de Redis, como listas o conjuntos ordenados, que reducen mucho más la sobrecarga de actualización. Requiere un poco más de codificación, pero suele ofrecer mejores resultados, ya que está más personalizado. Un buen ejemplo es mantener los artículos principales en forma de lista de ID de redis y luego acceder a los artículos serializados con una identificación dada también desde redis. Puede mantener ese artículo sin normalizar, es decir. El objeto serializado puede contener una identificación de usuario y un nombre de usuario, de modo que pueda mantener al mínimo la sobrecarga de consultas adicionales.

Depende de usted decidir qué enfoque tomar, yo personalmente casi siempre elijo el enfoque número dos. Pero, por supuesto, todo depende de cuánto tiempo tenga y de lo que se supone que debe hacer la aplicación:también puede comenzar con el almacenamiento en caché de consultas mysql y, si los resultados no son lo suficientemente buenos, pasar a redis y al almacenamiento en caché personalizado.