La Red de Conocimientos Pedagógicos - Currículum vitae - Tipos de datos de Redis y escenarios de aplicación

Tipos de datos de Redis y escenarios de aplicación

Redis es uno de los sistemas NOSQL más populares actualmente. Es un sistema de almacenamiento de valores clave de código abierto escrito en lenguaje ANSI c (diferente del almacenamiento de tablas bidimensionales de MySQL). ), los datos de Redis se almacenan en caché en la memoria de la computadora y escribe periódicamente datos actualizados en el disco o modifica operaciones en archivos de registro adicionales para lograr la persistencia de los datos. Cuando se trata de almacenar datos, deben estar involucrados tipos de datos relacionados. Redis tiene principalmente los siguientes tipos de datos:

Descripción: cadena es el tipo más básico de redis. Puede entenderlo exactamente como el mismo tipo que Memcached, con una clave correspondiente a un valor. El valor no es sólo una cadena, sino también un número. Los tipos de cadenas son binarios seguros. Una cadena que indica que redis puede contener cualquier dato. Como imágenes jpg u objetos serializados. El tipo de cadena es el tipo de datos más básico de Redis. Los valores de tipo cadena pueden almacenar hasta 512 MB.

Comandos de uso común: get, set, incr, decr, mget, etc.

Escenario de aplicación: especifique la aplicación de almacenamiento en caché de valores-clave. Recuento total: Me gusta, fans.

Descripción: Hash es un conjunto de pares clave-valor (clave = & valor gt). Redihash es una tabla de mapeo de campos y valores de tipo cadena y es particularmente adecuada para almacenar objetos.

Comandos más utilizados: hget, hset, hgetall, etc.

Escenario de aplicación: almacene algunos datos cambiantes, como información del producto.

Descripción: lista lista es una lista simple de cadenas, ordenadas en orden de inserción. Puede agregar elementos al principio (izquierda) o al final (derecha) de la lista. Las listas pueden almacenar hasta 232-1 elementos (4294967295, y cada lista puede almacenar más de 4 mil millones).

Comandos de uso común: lpush (agregar elemento izquierdo), rpush, lpop (eliminar el primer elemento a la izquierda), rpop, lrange (obtener fragmentos de lista, tecla LRANGE inicio y parada), etc.

Escenarios de aplicación: cola de mensajes, lista de vigilancia, lista de fans, etc. Todo se puede lograr a través de la estructura de listas de Redis.

Descripción: set es una colección desordenada de tipo cadena. Los conjuntos se implementan a través de tablas hash. El concepto es básicamente similar a los conjuntos en matemáticas y pueden cruzarse, fusionarse, diferir, etc. Los elementos de la colección están en el orden incorrecto. Entonces, la complejidad de agregar, eliminar y buscar es O (1).

Comandos de uso común: sadd, spop, sembers, sunion, etc.

Escenarios de aplicación: intersección, unión, conjunto de diferencias (en Weibo, todos los seguidores de un usuario se pueden almacenar en una colección y todos los fanáticos se pueden almacenar en una colección. Redis también proporciona colecciones Con operaciones como conjunto de intersección, unión y diferencia, puede implementar fácilmente funciones como ** misma atención, ** misma preferencia y dos amigos. Para todas las operaciones de conjunto anteriores, también puede usar diferentes comandos para elegir si desea devolver los resultados. el cliente. El final aún se guarda en un nuevo conjunto)

Descripción: zset, al igual que set, es una colección de elementos de tipo cadena y no permite miembros duplicados. La diferencia es que puedes puntuar (ordenar)

Comandos comunes: zadd, zrange, zrem, zcard, etc.

Escenarios de aplicación: lista de clasificación, cola de mensajes ponderados.

Explicación: El mapa de bits, una "estructura de datos", puede realizar operaciones de bits. La razón principal para hacer referencia a la estructura de datos es:

Bitmaps en sí no es una estructura de datos, de hecho es una cadena, pero puede manipular los bits de la cadena.

Los mapas de bits proporcionan un conjunto separado de comandos, por lo que usar mapas de bits en Redis es diferente a usar cadenas. Se puede considerar un mapa de bits como una matriz de bits. Cada celda de la matriz solo puede almacenar 0 y 1, y el subíndice de la matriz se denomina desplazamiento en el mapa de bits. De hecho, la mayoría de los escenarios de aplicación de mapas de bits se pueden implementar a través de otros tipos de datos. Los mapas de bits ocupan principalmente menos espacio de almacenamiento.

Comandos comunes: obtener compensación de clave de bit; establecer valor de compensación de clave de bit

Escenarios de aplicación: contar visitas de usuarios y contar reproducciones de películas en un día determinado.

Descripción: Redis agregó la estructura HyperLogLog en la versión 2.8.9. Redis HyperLogLog es un algoritmo estadístico de cardinalidad. La ventaja de HyperLogLog es que cuando el número o volumen de elementos de entrada es muy grande, el espacio requerido para el cálculo de la cardinalidad siempre es fijo y muy pequeño. En Redis, cada clave HyperLogLog solo requiere 12 KB de memoria para calcular la cardinalidad de casi 2^64 elementos diferentes. Esto contrasta marcadamente con una colección donde más elementos consumen más memoria al calcular la cardinalidad. Sin embargo, debido a que HyperLogLog solo calcula la base en función de los elementos de entrada y no almacena los elementos de entrada en sí, HyperLogLog no puede devolver los elementos de entrada como una colección. La idea básica de esta estructura de datos es utilizar algoritmos de probabilidad estadística para ahorrar espacio en la memoria y mejorar el rendimiento de las operaciones relacionadas a expensas de la precisión de los datos.

Comandos más utilizados: pfadd, pfcount, pfmerge.

Escenario de aplicación: Estadísticas de UV diarias del sitio web.

Nota: Redis3.2 proporciona la función geográfica, que admite el almacenamiento de información de ubicación geográfica y realiza funciones como posicionamiento cercano y vibración que dependen de la información de ubicación geográfica. El tipo de datos de GEO es zset.

Comandos más utilizados: geoadd, geopos, geodist.

Escenarios de aplicación: ubicación cercana, temblores

Lista de referencia:

Cinco tipos de datos y escenarios de aplicación de Redis