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

Principales casos de uso de Redis por tipo de estructura de datos principal

Redis, abreviatura de Remote Dictionary Server, es un almacén de estructura de datos clave-valor en memoria de código abierto con licencia BSD escrito en lenguaje C por Salvatore Sanfillipo y se lanzó por primera vez el 10 de mayo de 2009. Dependiendo de cómo esté configurado , Redis puede actuar como una base de datos, un caché o un intermediario de mensajes. Es importante tener en cuenta que Redis es un sistema de base de datos NoSQL. Esto implica que, a diferencia de los sistemas de bases de datos impulsados ​​por SQL (lenguaje de consulta estructurado) como MySQL, PostgreSQL y Oracle, Redis no almacena datos en esquemas de bases de datos bien definidos que constituyen tablas, filas y columnas. En cambio, Redis almacena datos en estructuras de datos, lo que lo hace muy flexible de usar. El alojamiento de ScaleGrid para Redis™* le permite automatizar las operaciones que consumen mucho tiempo para una variedad de casos de uso de Redis diferentes. En este blog, describimos los principales casos de uso de Redis según los diferentes tipos de estructuras de datos principales.

Estructuras de datos en Redis

Echemos un vistazo a algunos de los tipos de datos que admite Redis. En Redis, tenemos cadenas, listas, conjuntos, conjuntos ordenados y hashes, que trataremos en este artículo. Además, tenemos otros tipos de datos, como mapas de bits, hiperloglogs e índices geoespaciales con consultas de radio y flujos. Si bien hay algunas herramientas de GUI de Redis escritas por la comunidad de Redis, la línea de comandos es, con mucho, el cliente más importante, a diferencia de los usuarios de bases de datos SQL populares que a menudo prefieren los sistemas de administración de GUI, por ejemplo, phpMyAdmin para MySQL y PgAdmin para PostgreSQL.

Echemos un vistazo más de cerca a los tipos de datos que existen en Redis.

Cadenas Redis

Las cadenas de Redis son el tipo más básico de valor de Redis aprovechado por todos los demás tipos de estructuras de datos y son bastante similares a las cadenas en otros lenguajes de programación, como Java o Python. Las cadenas, que pueden contener cualquier tipo de datos, se consideran binarias seguras y tienen una longitud máxima de 512 MB. Aquí hay un par de comandos útiles para las cadenas de Redis:

Para almacenar una cadena 'john ' bajo una clave como 'estudiante' en Redis, ejecute el comando:

SET “estudiante” “juan”

Para recuperar la cadena, use el comando GET como se muestra:

GET “estudiante”

Para borrar la cadena contenida en la clave use el comando DEL:

DEL “estudiante”

Casos de uso de cadenas Redis

  1. Caché de sesión: Muchos sitios web aprovechan Redis Strings para crear una caché de sesión para acelerar la experiencia de su sitio web mediante el almacenamiento en caché de fragmentos o páginas HTML. Dado que los datos se almacenan temporalmente en la RAM, este atributo hace que Redis sea la elección perfecta como caché de sesión. Es capaz de almacenar temporalmente datos específicos del usuario, por ejemplo, artículos almacenados en un carrito de compras en una tienda en línea, lo cual es crucial para que sus usuarios no pierdan sus datos en caso de que cierren sesión o pierdan la conexión.
  2. Colas: Cualquier aplicación que se ocupe de la congestión del tráfico, la mensajería, la recopilación de datos, la gestión de trabajos o el enrutamiento del empaquetador debe considerar Redis Queue, ya que esto puede ayudarlo a administrar el tamaño de su cola por tasa de llegada y salida para la distribución de recursos.
  3. Uso y facturación medida: Un caso de uso menos conocido para Redis Strings es la medición en tiempo real para modelos de precios basados ​​en el consumo. Esto permite que las plataformas SaaS facturen en función del uso real para medir la actividad de sus clientes, como en la industria de las telecomunicaciones, donde pueden cobrar por mensajes de texto o minutos.

Listas Redis

Las listas contienen cadenas que están ordenadas por su orden de inserción. Con Redis Lists, puede agregar elementos al principio o al final de las listas, lo cual es muy útil para poner en cola trabajos. Si hay trabajos más urgentes que necesita ejecutar, estos pueden colocarse delante de otros trabajos de menor prioridad en la cola. Usaríamos el comando LPUSH para insertar un elemento al principio oa la izquierda de la cadena, y el comando RPUSH para insertarlo al final oa la derecha de nuestra cadena. Veamos un ejemplo:

LPUSH list x   # ahora la lista es "x"

LPUSH list y   # ahora la lista es "y","x"

RPUSH list z   # ahora la lista es "y","x","z" (Observe cómo se agregó el elemento 'z' al final de la lista mediante el comando RPUSH)

Lista de casos de uso de Redis

  1. Sitios de redes sociales: Las plataformas sociales como Twitter utilizan las Listas de Redis para completar sus líneas de tiempo o feeds de la página de inicio, y pueden personalizar la parte superior de sus feeds con tweets o historias de tendencia.
  2. Fuentes RSS: Cree fuentes de noticias a partir de fuentes personalizadas donde pueda obtener las últimas actualizaciones y permitir que los seguidores interesados ​​se suscriban a su fuente RSS.
  3. Tablas de clasificación: Los foros como Reddit y otras plataformas de votación aprovechan las listas de Redis para agregar artículos a la tabla de clasificación y ordenarlos por las entradas más votadas.

Aprenda a crear su propio feed de Twitter en nuestra publicación de blog Almacenamiento en caché de tweets con Node.js, Redis y Socket.io.

Principales casos de uso de #Redis por tipos de estructuras de datos principalesHaga clic para twittear

Conjuntos Redis

Los conjuntos de Redis son tipos de datos potentes que admiten operaciones potentes como intersecciones y uniones. No están en ningún orden y generalmente se usan cuando desea realizar una auditoría y ver las relaciones entre varias variables. Los conjuntos son razonablemente rápidos e independientemente de la cantidad de elementos que haya almacenado, le llevará el mismo tiempo agregar o eliminar elementos en un conjunto. Además, los conjuntos no permiten claves duplicadas o miembros duplicados, por lo que una clave agregada varias veces en un conjunto simplemente se ignorará. Esto es impulsado por una función llamada SADD que evita la duplicación de múltiples entradas similares. El atributo SADD se puede emplear al verificar valores únicos y también para programar trabajos que se ejecutan en segundo plano, incluidos los trabajos cron que son scripts automatizados.

Estos son particularmente útiles para analizar el comportamiento de los clientes en tiempo real para su sitio de compras en línea. Por ejemplo, si tiene una tienda de ropa en línea, Redis Sorted Sets emplea técnicas de comparación de relaciones, como uniones, intersecciones y restas (comúnmente aplicadas en los diagramas de Venn) para brindar una imagen precisa del comportamiento del cliente. Puede recuperar datos sobre patrones de compra entre géneros, qué productos de ropa se venden más y qué horas registran las ventas más altas.

Casos de uso de conjuntos de Redis

  1. Análisis de ventas de comercio electrónico: Muchas tiendas en línea usan Redis Sets para analizar el comportamiento de los clientes, como búsquedas o compras para una categoría o subcategoría de producto específica. Por ejemplo, el propietario de una librería en línea puede averiguar cuántos clientes compraron libros de medicina en Psicología.
  2. Seguimiento de dirección IP: Redis Sets es una excelente herramienta para los desarrolladores que desean analizar todas las direcciones IP que visitaron una página de sitio web específica o una publicación de blog, y poder ignorar todos los duplicados para visitantes únicos con su función SADD.
  3. Filtrado de contenido inapropiado: Para cualquier aplicación que recopile la entrada del usuario, es una buena idea implementar el filtrado de contenido para palabras inapropiadas, y puede hacerlo con Redis Sets agregando palabras que le gustaría filtrar a una tecla SET y el comando SADD.

Conjuntos ordenados

Como sugiere el nombre, los conjuntos ordenados de Redis son una colección de cadenas que asignan un orden a sus elementos y son una de las estructuras de datos más avanzadas en Redis. Estos son similares a los conjuntos de Redis, solo que los conjuntos no tienen orden, mientras que los conjuntos ordenados asocian cada miembro con una puntuación. Los conjuntos ordenados son conocidos por ser muy rápidos, ya que puede devolver listas ordenadas y acceder a elementos en el menor tiempo posible.

Casos de uso de conjuntos ordenados de Redis

  1. Plataformas de preguntas y respuestas: Muchas plataformas de preguntas y respuestas, como Stack Overflow y Quora, usan Redis Sorted Sets para clasificar las respuestas más votadas para cada pregunta propuesta para garantizar que el contenido de mejor calidad se incluya en la parte superior de la página.
  2. Marcadores de aplicaciones de juegos: Las aplicaciones de juegos en línea aprovechan Redis Sorted Sets para mantener sus listas de puntajes altos, ya que los puntajes se pueden repetir, pero las cadenas que contienen los detalles únicos del usuario no.
  3. Servicio de programación de tareas: Los conjuntos ordenados de Redis son una gran herramienta para un servicio de programación de tareas, ya que puede asociar una puntuación para clasificar la prioridad de una tarea en su cola. Para cualquier tarea que no tenga una puntuación anotada, puede usar la opción PESOS con un valor predeterminado de 1.
  4. Hashing geográfico: La API de indexación geográfica de Redis utiliza un conjunto ordenado para la técnica Geo Hash que le permite indexar ubicaciones en función de la latitud y la longitud, convirtiendo datos multidimensionales en datos lineales.

Redis hashes

Redis Hashes son mapas entre campos de cadena y valores de cadena. Este es el tipo de datos de acceso si necesita crear esencialmente un contenedor de campos únicos y sus valores para representar objetos. Los hashes le permiten almacenar una cantidad decente de campos, hasta 232 – 1 pares de valor de campo (más de 4 mil millones), ocupando muy poco espacio. Debe usar Redis Hashes siempre que sea posible, ya que puede usar una pequeña instancia de Redis para almacenar millones de objetos. Puede usar operaciones básicas de comando hash, como obtener, establecer, existe, además de muchas operaciones avanzadas.

Casos de uso de hashes de Redis

  1. Perfiles de usuario: Muchas aplicaciones web utilizan Redis Hashes para sus perfiles de usuario, ya que pueden utilizar un solo hash para todos los campos de usuario, como nombre, apellido, correo electrónico, contraseña, etc.
  2. Publicaciones de usuarios: Las plataformas sociales como Instagram aprovechan Redis Hashes para asignar todas las fotos o publicaciones de usuarios archivadas a un solo usuario. El mecanismo hash les permite buscar y devolver valores muy rápidamente, guardar los datos en la memoria y aprovechar la persistencia de los datos en caso de que uno de sus servidores falle.
  3. Almacenamiento de métricas multiusuario: Las aplicaciones multiinquilino pueden aprovechar los hashes de Redis para registrar y almacenar sus métricas de ventas y productos de una manera que garantice una separación sólida entre cada inquilino, ya que los hashes se pueden codificar de manera eficiente en un espacio de memoria muy pequeño.

¿Quién usa Redis?

Redis ha encontrado una gran participación de mercado en las industrias de viajes y hospitalidad, foros comunitarios, redes sociales, SaaS y comercio electrónico, por nombrar solo algunas. Algunas de las empresas líderes que utilizan Redis incluyen Pinterest, Uber, Slack, Airbnb, Twitter y Stack Overflow. Aquí hay algunas estadísticas sobre la popularidad de Redis hoy:

  • 4107 empresas informaron que usan Redis en StackShare
  • 8759 desarrolladores afirmaron usar Redis en StackShare
  • 38 094 usuarios de GitHub han destacado Redis
  • Base de datos clasificada en el puesto n.º 8 en DB-Engines con una puntuación de 144,08