Artículo de Redis (caso de aplicación: estadísticas UV) (actualizado e iterado continuamente)

Tabla de contenido

1. HyperLogLog

2. Pruebe las estadísticas de millones de datos.


1. HyperLogLog

Primero entendemos dos conceptos:

UV: El nombre completo es Visitante Único, también llamado visitante único, que se refiere a las personas naturales que acceden y navegan a través de Internet en esta página web.

Si un mismo usuario visita el sitio web varias veces durante un día, solo se registrará una vez.

PV: el nombre completo es Vista de página, también llamada vistas de página o clics. Cada vez que un usuario visita una página en el sitio web, se registra un PV y el usuario abre la página varias veces.

superficie, se registran múltiples PV.

A menudo se utiliza para medir el tráfico del sitio web.

En términos generales, UV es mucho mayor que PV, por lo que al medir el número de visitas al mismo sitio web, debemos considerar muchos factores.

Entonces solo usamos estos dos valores como valor de referencia.

Será más problemático hacer estadísticas UV en el lado del servidor, porque para determinar si el usuario ha sido contado, es necesario guardar la información del usuario contado.

Pero si cada usuario visitante se guarda en Redis, la cantidad de datos será muy aterradora, entonces, ¿cómo lidiar con eso?

Hyperloglog (HLL) es un algoritmo probabilístico derivado del algoritmo Loglog y se utiliza para determinar la cardinalidad de conjuntos muy grandes sin necesidad de almacenarlos todos.

valor.

Puede consultar los principios del algoritmo relevantes: https://juejin.cn/post/6844903785744056333#heading-0

El HLL en Redis se implementa en función de la estructura de cadenas. La memoria de un único HLL siempre es inferior a 16 kb y el uso de memoria es terriblemente bajo.

Como compensación, sus mediciones son probabilísticas, con un error inferior al 0,81%.

Pero para las estadísticas UV esto es completamente insignificante.

2. Pruebe las estadísticas de millones de datos.

Idea de prueba: utilizamos directamente pruebas unitarias para agregar 1 millón de datos a HyperLogLog para ver cómo son el uso de memoria y los efectos estadísticos.

Después de la prueba: nuestro error está dentro del rango permitido y el uso de memoria es mínimo

Supongo que te gusta

Origin blog.csdn.net/qq_51226710/article/details/142655875
Recomendado
Clasificación