(Redis): Introducción y aplicación de tipos de hash

Tabla de contenido

tipo hash

tipo hash

Operación básica de datos de tipo hash

Operación de expansión de datos de tipo hash

Notas sobre operaciones de datos de tipo hash

Escenarios de aplicación de tipo hash

tipo hash

Confusión de almacenamiento
  • El almacenamiento de datos de objetos será engorroso si tiene requisitos de actualización más frecuentes.
  • Hay dos formas de almacenar datos a través de cadenas.

  • o

  • Realizar cambios en los datos anteriores

---

  • Es un poco similar a poner Redis en Redis

tipo hash

  • Nuevos requisitos de almacenamiento: agrupe una serie de datos almacenados para facilitar la gestión, las aplicaciones típicas almacenan información de objetos
  • Estructura de almacenamiento requerida: un espacio de almacenamiento almacena varios datos de pares clave-valor
  • Tipo de hash : la capa inferior utiliza una estructura de tabla hash para lograr el almacenamiento de datos

  • Optimización de la estructura de almacenamiento de hash
    • Si el número de campos es pequeño, la estructura de almacenamiento se optimiza a una estructura similar a una matriz
    • Si el número de campos es grande, la estructura de almacenamiento usa la estructura HashMap

Operación básica de datos de tipo hash

Agregar / modificar datos
valor del campo clave hset
recuperar datos
hget campo clave
clave hgetall
borrar datos
hdel key field1 [field2]
  • Ejemplo:

Agregar / modificar varios datos
hmset clave campo1 valor1 campo2 valor2…
Obtener múltiples datos
hmget key field1 field2…
Obtenga el número de campos en la tabla hash
llave hlen
Obtener si el campo especificado existe en la tabla hash
campo clave hexists

Operación de expansión de datos de tipo hash

Obtenga todos los nombres de campo o valores de campo en la tabla hash
clave hkeys
ballena clave
Establecer los datos numéricos del campo especificado para aumentar el valor del rango especificado
incremento de campo clave hincrby
Incremento de campo clave hincrbyfloat

Notas sobre operaciones de datos de tipo hash

  • El valor bajo el tipo hash solo puede almacenar cadenas y no se permiten otros tipos de datos. No hay fenómeno de anidamiento. Si no se obtienen los datos, el valor correspondiente es (nulo)
  • El tipo de hash está muy cerca de la forma de almacenamiento de datos del objeto y puede agregar y eliminar atributos del objeto de manera flexible.
    • Pero el hash no está diseñado para ahorrar dinero para el almacenamiento de una gran cantidad de objetos diseñados, no puede recordar el abuso, pero no puede hacer el hash como una lista de objetos.
  • La operación hgetall puede obtener todos los atributos. Si hay demasiados campos internos, la eficiencia de atravesar los datos generales será muy baja, lo que puede convertirse en un cuello de botella en el acceso a los datos.

Escenarios de aplicación de tipo hash

Escenario empresarial 1
  • Diseño e implementación de carrito de compras en sitio web de comercio electrónico
  • Análisis comercial
    • Analizar solo el modelo de almacenamiento de redis del carrito de compras
      • Agregar, navegar, cambiar cantidad, eliminar, vaciar
    • Sincronización persistente entre el carrito de la compra y la base de datos (no se comenta)
    • Relación entre el carrito de la compra y el pedido (no se comenta)
      • Enviar carrito de compras: leer datos para generar un pedido
      • Ajuste de precio temporal para comerciantes: perteneciente al nivel de pedido
    • Almacenamiento de información del carrito de compras para usuarios que no han iniciado sesión (no se comenta)
      • almacenamiento de cookies

solución
  • Con la identificación del cliente como clave, cada cliente crea una estructura de almacenamiento de hash para almacenar la información correspondiente del carrito de compras.
  • Almacene el número de producto como el campo y la cantidad de compra como el valor
  • Agregar productos: agregar nuevos campos y valor
  • Explorar: atravesar el hash
  • Cambiar cantidad: auto-aumento / auto-disminución, valor establecido
  • Eliminar producto: eliminar campo
  • Vacío: eliminar clave
  • Solo discuta el diseño del modelo en el carrito de compras aquí
  • No se discutirá la sincronización persistente entre el carro de la compra y la base de datos, la relación entre el carro de la compra y el pedido y el almacenamiento de información del carro de la compra para los usuarios no registrados.
¿El diseño actual acelera la presentación del carrito de compras?
  • En la actualidad, los datos solo se almacenan en redis, que no se acelera, y la información del producto necesita consultar la base de datos dos veces.
  • Los registros de producto en cada carrito de compras se guardan como dos campos
    • field1 está dedicado a guardar la cantidad de compra
      • Formato de nomenclatura: ID de producto: números
      • Guardar datos: valor
    • field2 está dedicado a guardar la información que se muestra en el carrito de compras, incluida la descripción del texto, la dirección de la imagen, la información comercial, etc. ( hash independiente )
      • Formato de nombre: ID de producto: información
      • Guardar datos: json
hsetnx key field value
Escenario empresarial 2
  • Doble 11 días, ventas de tarjetas de recarga de teléfonos móviles para negocios móviles, China Unicom, Telecom 30 yuanes, 50 yuanes, 100 yuanes de bienes introducidos actividades de compra, cada límite comercial se apresura a comprar bienes 1000

solución
  • Utilice la identificación del comerciante como clave
  • Utilice la identificación del producto que participa en el pánico como campo
  • Tome el número de productos que participan en la fiebre como el valor correspondiente
  • Utilice la devaluación para controlar la cantidad de productos al comprar
  • Hay problemas prácticos como la sobreventa en el negocio real, por lo que no los discutiré aquí.
  • [Nota] Redis se utiliza en el diseño de almacenamiento de datos para empresas como compras de pánico, compras restringidas, distribución limitada de cupones, códigos de activación, etc.

Supongo que te gusta

Origin blog.csdn.net/baidu_41388533/article/details/108913087
Recomendado
Clasificación