Auto-resumen de Redis

1. Penetración de caché

Inserte la descripción de la imagen aquí

2. Avalancha de caché

Inserte la descripción de la imagen aquí

3. Desglose de la caché

Inserte la descripción de la imagen aquí

Redis implementa bloqueos distribuidos

Inserte la descripción de la imagen aquí
Para evitar que seamos anormales cuando ejecutamos el negocio o el servidor se cae accidentalmente, no eliminamos el bloqueo y nos provoca un punto muerto, luego debemos agregar un tiempo de vencimiento antes de ejecutar el negocio.
El bloqueo y nuestro tiempo de vencimiento no se pueden ejecutar por separado para garantizar que sea atómico.
Inserte la descripción de la imagen aquí
El candado eliminado aquí puede no ser nuestro propio candado, por lo que cuando agregamos el candado, necesitamos poner un uuid para asegurarnos de que sea nuestro propio candado. Luego lo sacamos y juzgamos que es nuestro propio candado. Estas dos operaciones no son atómicos, por lo que debemos usar el script lua.
Inserte la descripción de la imagen aquí
Eliminar bloqueoInserte la descripción de la imagen aquí

Usando Redisson para implementar bloqueos distribuidos

Puede simplificar nuestra lógica anterior y hacerla más poderosa.

  1. Renovará automáticamente nuestras cerraduras y agregará automáticamente 30 segundos por defecto
  2. No se preocupe por el problema del desbloqueo.
    Inserte la descripción de la imagen aquí
    Por lo general, necesitamos especificar manualmente el tiempo de vencimiento; de lo contrario, la complicada estrategia de extensión interna lleva mucho tiempo.

Bloqueo de lectura y escritura

Inserte la descripción de la imagen aquí

Utilice Redisson

1. Agregar dependencias

<dependency>
            <groupId>org.redisson</groupId>
            <artifactId>redisson</artifactId>
            <version>3.14.1</version>
</dependency>

2. Configuración

@Configuration
public class RedissonConfig {
    
    

    @Bean(destroyMethod = "shutdown")
    public RedissonClient redisson() {
    
    
        // 1. Create config object
        Config config = new Config();
        config.useSingleServer().setAddress("redis://39.96.41.98:6379");
        return Redisson.create(config);
    }
}

Consistencia de datos de Redis

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_36905956/article/details/112154755
Recomendado
Clasificación