Desglose de redis y caché, penetración, avalancha

Tabla de contenido

Ventajas y desventajas

Instrucciones

 Escenas a utilizar

Desglose de caché de Redis, penetración, avalancha


Redis es un sistema de almacenamiento de estructura de datos de memoria de código abierto que admite una variedad de estructuras de datos, incluidas cadenas, tablas hash, listas, conjuntos, conjuntos ordenados, etc. Los escenarios de uso de Redis son muy extensos, los siguientes son algunos escenarios de uso comunes:

Ventajas y desventajas

1. Caché: el escenario de uso más común de Redis es como caché, almacenando datos calientes en la memoria para mejorar el rendimiento de lectura y escritura.

2. Contador: Redis admite operaciones atómicas, que se pueden usar para implementar funciones de contador, como estadísticas PV/UV en sitios web.

3. Bloqueos distribuidos: las operaciones atómicas de Redis también se pueden usar para implementar bloqueos distribuidos para garantizar el acceso mutuamente excluyente entre múltiples procesos o subprocesos.

4. Cola de mensajes: Redis admite el modelo de publicación/suscripción, que se puede usar para implementar la función de cola de mensajes.

5. Almacenamiento de datos: Redis admite el almacenamiento persistente y puede almacenar datos en el disco para garantizar la confiabilidad de los datos.

Ventajas de Redis:

1. Alto rendimiento: Redis almacena datos en la memoria y la velocidad de lectura y escritura es muy rápida.

2. Múltiples estructuras de datos: Redis admite múltiples estructuras de datos para satisfacer diferentes necesidades.

3. Operaciones atómicas: Redis admite operaciones atómicas, lo que puede garantizar la atomicidad de múltiples operaciones.

4. Alta disponibilidad: Redis admite la replicación maestro-esclavo y el modo centinela, lo que puede garantizar una alta disponibilidad.

Desventajas de Redis:

1. Limitación de memoria: Redis almacena datos en la memoria, que está limitada por el tamaño de la memoria.

2. Almacenamiento persistente: el almacenamiento persistente de Redis necesita escribir datos en el disco, lo que afectará el rendimiento.

3. Subproceso único: Redis es de subproceso único y no puede utilizar completamente el rendimiento de las CPU multinúcleo.

4. Coherencia de los datos: la replicación maestro-esclavo y el modo centinela de Redis no pueden garantizar una sólida consistencia de los datos.

Instrucciones

1. Manipulación de cadenas

- SET: establezca un par clave-valor, a menudo utilizado en escenarios como cachés y contadores.
- GET: Obtener el valor correspondiente a una clave.
- INCR/DECR: Suma/resta el valor correspondiente a una clave, a menudo utilizado en escenarios de contador.
- ADJUNTAR: agregue la cadena especificada al final del valor correspondiente a una clave, que a menudo se usa en el registro y otros escenarios.

2. Operaciones con tablas hash

- HSET: Establece campos y valores en una tabla hash.
- HGET: Obtener el valor de un campo especificado en una tabla hash.
- HGETALL: Obtener todos los campos y valores en una tabla hash.
- HINCRBY: agrega el valor de un campo específico en una tabla hash, a menudo utilizada en escenarios de contador.

3. Operaciones de lista

- LPUSH/RPUSH: Inserta un elemento a la izquierda/derecha de la lista.
- LPOP/RPOP: Pop un elemento del lado izquierdo/derecho de la lista.
- LINDEX: Obtener el elemento con el subíndice especificado en la lista.
- LLEN: Obtener la longitud de la lista.

4. Operaciones de cobro

- SADD: Añade un elemento al conjunto.
- SMEMBERS: Consigue todos los elementos de la colección.
- SISMEMBER: Determina si un elemento está en el conjunto.
- SINTER: Obtener la intersección de múltiples conjuntos.

5. Operaciones de conjuntos ordenados

- ZADD: Añade un elemento a un conjunto ordenado.
- ZRANGE: Obtiene los elementos del rango especificado en la colección ordenada.
- ZSCORE: Obtenga la puntuación del elemento especificado en el conjunto ordenado.
- ZINCRBY: agregue la puntuación del elemento especificado en el conjunto ordenado, que a menudo se usa en la escena de la tabla de clasificación.

En general, cada método de Redis tiene sus propios escenarios de aplicación y se puede seleccionar el método adecuado según las necesidades comerciales específicas. Por ejemplo, las operaciones de cadenas se usan a menudo en escenarios como almacenamiento en caché y contadores, las operaciones de tablas hash se usan a menudo para almacenar objetos, las operaciones de lista se usan a menudo en colas, pilas y otros escenarios, las operaciones de conjuntos se usan a menudo en escenarios como deduplicación y Las operaciones de intersecciones y conjuntos ordenados se utilizan a menudo para clasificar List y otras escenas.

 Escenas a utilizar

1. SET: establezca un par clave-valor, que a menudo se usa en escenarios como el almacenamiento en caché de datos y el almacenamiento de sesiones de usuario.

2. GET: obtiene el valor correspondiente a una clave, que a menudo se usa en escenarios como la lectura de datos almacenados en caché y la obtención de sesiones de usuario.

3. INCR/DECR: suma/resta el valor correspondiente a una clave, a menudo utilizado en escenarios como contadores y clasificaciones.

4. HSET/HGET: establece/obtiene el valor del campo en una tabla hash, que a menudo se usa para almacenar información del usuario, información del producto y otros escenarios.

5. LPUSH/RPUSH/LRANGE: agregue elementos al lado izquierdo/derecho de la lista, u obtenga una sección de elementos en la lista, que se usa a menudo en escenarios como colas de mensajes y colas de tareas.

6. SADD/SMEMBERS: agregue elementos a la colección u obtenga todos los elementos de la colección, a menudo se usa en escenarios como la eliminación de duplicados y el etiquetado.

7. ZADD/ZRANGE: agregue elementos a un conjunto ordenado u obtenga una sección de elementos en un conjunto ordenado, que se usa a menudo en clasificaciones, tablas de clasificación y otros escenarios.

8. CADUCIDAD: establezca el tiempo de caducidad de una clave, que a menudo se usa en escenarios como el almacenamiento en caché de datos y la limitación actual. Los anteriores son algunos métodos de Redis de uso común y sus escenarios de uso. Hay muchos otros métodos y escenarios en aplicaciones prácticas. Necesidad de elegir el método y la estructura de datos apropiados de acuerdo con las necesidades comerciales específicas

Desglose de caché de Redis, penetración, avalancha

Redis es una tecnología de almacenamiento en caché común, pero durante el uso, puede encontrar los siguientes tres problemas de almacenamiento en caché:

1. Penetración de caché: se refiere a consultar una clave que no existe. Dado que no hay datos correspondientes en el caché, cada consulta penetrará en la base de datos, lo que provocará una presión excesiva en la base de datos. Un atacante puede atacar el sistema mediante la construcción de una clave maliciosa, provocando la parálisis del sistema.

Solución:
- Filtro Bloom: agregue un filtro Bloom entre la capa de caché y la capa de la base de datos para filtrar las claves que no existen y reducir el acceso a la base de datos.
- Caché de objetos vacíos: Guarda un objeto vacío en la caché, indicando que los datos correspondientes a la clave no existen, y devuelve el objeto vacío directamente en la próxima consulta, y ya no accede a la base de datos.
- Establezca un tiempo de caducidad a corto plazo: para las claves que no existen en la consulta, establezca un tiempo de caducidad a corto plazo para evitar que una gran cantidad de solicitudes penetren en la base de datos al mismo tiempo.

2. Avalancha de caché: una gran cantidad de claves en el caché caducan al mismo tiempo, lo que provoca que una gran cantidad de solicitudes accedan directamente a la base de datos, provocando una presión excesiva en la base de datos e incluso provocando un bloqueo del sistema.

Solución:
- Establezca diferentes tiempos de vencimiento: para el mismo tipo de datos, establezca diferentes tiempos de vencimiento para evitar el vencimiento simultáneo de una gran cantidad de claves.
- Agregar tiempo aleatorio: establezca un tiempo de caducidad aleatorio en el caché para evitar la invalidación simultánea de una gran cantidad de claves.
- Usar bloqueos distribuidos: establezca bloqueos distribuidos en la memoria caché para evitar que varias solicitudes accedan a la base de datos al mismo tiempo.

3. Desglose de caché: se refiere a la falla de una determinada clave de punto de acceso, lo que provoca una gran cantidad de solicitudes para acceder directamente a la base de datos, lo que genera una presión excesiva en la base de datos e incluso hace que el sistema se bloquee.

Solución:
- Establezca que nunca caduque: para los datos activos, puede configurar que nunca caduque para evitar la invalidación de la memoria caché.
- Agregar una exclusión mutua: establezca una exclusión mutua en la memoria caché para evitar que varias solicitudes accedan a la base de datos al mismo tiempo.
- Usar actualización asíncrona: Configure la actualización asíncrona en el caché para evitar que una gran cantidad de solicitudes accedan a la base de datos al mismo tiempo.

Supongo que te gusta

Origin blog.csdn.net/weixin_46894136/article/details/131034245
Recomendado
Clasificación