Redis的自我总结

1.缓存穿透

在这里插入图片描述

2.缓存雪崩

在这里插入图片描述

3.缓存击穿

在这里插入图片描述

redis实现分布式锁

在这里插入图片描述
为了防止我们在执行业务的时候出现异常 或者是服务器宕机的意外 没有删除锁 导致我们出现死锁的现象 那么我们要在执行业务之前加一个过期时间。
而这个加锁和我们的的加过期时间不能分开执行 要保证他是原子性的。
在这里插入图片描述
这里删除的锁可能不是自己的锁 所以我们在加锁的时候 要放一个uuid 保证是自己的锁 那么我们取出来 在判断是自己的锁 这俩步操作又不是原子的了 所以我们要用lua脚本
在这里插入图片描述
删锁在这里插入图片描述

利用Redisson实现分布式锁

他可以使我们之前的逻辑简单化,更强大。

  1. 会给我们的锁自动续期 默认自动加30s
  2. 不用担心为解锁而出现的问题
    在这里插入图片描述
    我们一般需要手动指定过期时间 不然他内部复杂的延期策略耗时

读写锁

在这里插入图片描述

使用Redisson

1.添加依赖

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

2.配置

@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);
    }
}

Redis的数据一致性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36905956/article/details/112154755