Cómo utilizar la caché de Redis para mejorar el rendimiento de las consultas de la base de datos
Debido a que Redis tiene la capacidad de leer y escribir datos rápidamente en el almacenamiento de datos, tiene ventajas de rendimiento sobre las bases de datos relacionales. Sin embargo, los almacenes de datos clave-valor son simples; no tienen un lenguaje de consulta similar a SQL ni un modelo de datos estructurados. En cambio, tienen un diccionario simple o un patrón hash que utiliza claves como identificadores asociados con valores. Los administradores utilizan estas claves para almacenar y
recuperar valores.
Los almacenes clave-valor son simples y rápidos, y pueden usarse para lograr una buena coincidencia entre los modelos de datos enriquecidos y las capacidades de consulta de las bases de datos relacionales. Sin embargo, a veces es mejor utilizar una combinación de bases de datos clave-valor y relacionales. Además, existen muchas bases de datos de valores clave con soporte comercial, incluidas Redis, Riak, Areospike, etc.
Para ejecutar un caché de Redis que optimice el rendimiento de consultas populares, primero debe determinar los resultados de la consulta que desea almacenar en caché. De estas, debe centrarse en las consultas más utilizadas y que consumen más tiempo, y luego determinar qué datos dentro de las consultas deben almacenarse en el búfer. Para simplificar, todos los valores de columna devueltos por la consulta se almacenan en caché.
Defina una convención de nomenclatura para los valores clave; las claves se pueden construir utilizando una combinación de claves primarias de fila y nombres de columna. Por ejemplo, una descripción de producto cuyo ID de clave principal es 198278 se puede almacenar con el valor de clave '198278:descry'. Asegúrese de que su convención de nomenclatura sea simple y esté basada en reglas para facilitar la creación programática de claves con un código mínimo.
A continuación, decida si ejecutar Redis Cache como un servicio autoadministrado o ElastiCache de Amazon. La ejecución de la propia instancia de Redis de un usuario brindará a los administradores control total sobre el caché. Este control significa flexibilidad, como la capacidad de que los administradores utilicen instancias reservadas existentes cuando se excede la capacidad.
Además, los usuarios encontrarán útil el control administrativo total cuando quieran migrar aplicaciones de un proveedor de computación en la nube a otro.
Si el usuario elige ejecutar una instancia de Redis autoadministrada, se puede descargar el servidor. Los clientes de Redis admiten más de 30 lenguajes de programación, desde Java y Python hasta Prolog y Smalltalk.
Es posible que las empresas que ya utilizan entornos AWS quieran utilizar ElastiCache. Además de beneficios como la aplicación de parches administrados, Amazon ElastiCache admite una variedad de tipos de nodos optimizados para caché de alta velocidad, incluidos nodos m3 de mediano a 2X, nodos r3 de grande a 8X y nodos t2 de tamaño micro a mediano. ElastiCache también admite algunos tipos de nodos de generaciones anteriores, como la selección de nodos m1, m2, t1 y c1.
ElastiCache también admite múltiples zonas de disponibilidad. Si un nodo falla, una réplica de lectura reemplazará el nodo fallido. Todos los cambios de DNS necesarios para garantizar que la aplicación se esté ejecutando se realizan automáticamente y se crea una nueva réplica de lectura. ElastiCache permite un modelo de precios bajo demanda basado en el uso del tiempo, así como términos de uso de nodos prepagos de uno o tres años. La lista de precios completa se puede encontrar aquí.
Si utiliza la caché de Redis y Amazon ElastiCache, puede iniciar un clúster desde la Consola de administración de AWS. Además de configurar el servicio Redis, también debe modificar el código de la aplicación para utilizar el almacenamiento en caché. Un patrón común es verificar si existe un valor clave en el caché y, si no, ejecutar una consulta SQL para recuperar los datos y almacenarlos en el caché. Cuando el caché
está lleno, Redis se puede configurar para eliminar datos antiguos, de modo que los usuarios no necesiten usar un código especial para manejar la situación cuando el caché está lleno.