Redis7——穿透 击穿 雪崩 及 分布式锁

文章目录

    • 1 穿透
    • 2 击穿
    • 3 雪崩
  • 分布式锁
    • 基于redis的分布式锁
    • 为什么要Lua脚本
    • 权限列表
    • 单线程 多路IO

分布式电商也讲了这三种

1 穿透

就是查根本不存在的数据 一直访问数据库 一直查不到 因为查不到数据 不能放入缓存 所以大量请求都直接到了数据库
redis命中率低
解决 :查不到的数据也放入缓存 null表示
Redis7——穿透 击穿 雪崩 及 分布式锁_第1张图片

Redis7——穿透 击穿 雪崩 及 分布式锁_第2张图片
Redis7——穿透 击穿 雪崩 及 分布式锁_第3张图片

2 击穿

击穿就是一个热点数据的缓存失效 大量请求到了数据库

Redis7——穿透 击穿 雪崩 及 分布式锁_第4张图片
Redis7——穿透 击穿 雪崩 及 分布式锁_第5张图片

3 雪崩

雪崩就是大面积的缓存集中失效
解决: 过期时间随机 让过期时间分散开
Redis7——穿透 击穿 雪崩 及 分布式锁_第6张图片
Redis7——穿透 击穿 雪崩 及 分布式锁_第7张图片

分布式锁

Redis7——穿透 击穿 雪崩 及 分布式锁_第8张图片

基于redis的分布式锁

分布式电商里面有讲 讲的还详细一些

利用 setnx 因为他这个是自己上锁setnx自己解锁del key嘛 那如果他一直不释放锁 就会死锁 所以在用nx的同时用 ex 设置过期时间
在这里插入图片描述
Redis7——穿透 击穿 雪崩 及 分布式锁_第9张图片

为什么要Lua脚本

Redis7——穿透 击穿 雪崩 及 分布式锁_第10张图片

如果uuid比较完了 还没删 锁就过期了自动释放了 b拿到锁了 也上锁了 这个时候a去删 就会删了b的锁
Redis7——穿透 击穿 雪崩 及 分布式锁_第11张图片

权限列表

ACL命令 可以创建用户啊 添加权限啊 实现更强大的权限控制
在这里插入图片描述
Redis7——穿透 击穿 雪崩 及 分布式锁_第12张图片

单线程 多路IO

有好几种方式 select poll epoll
I/O复用模型
1.select/poll
老李去火车站买票,委托黄牛,然后每隔6小时电话黄牛询问,黄牛三天内买到票,然后老李去火车站交钱领票。
耗费:往返车站2次,路上2小时,黄牛手续费100元,打电话17次
2.epoll
老李去火车站买票,委托黄牛,黄牛买到后即通知老李去领,然后老李去火车站交钱领票。
耗费:往返车站2次,路上2小时,黄牛手续费100元,无需打电话

Redis7——穿透 击穿 雪崩 及 分布式锁_第13张图片

你可能感兴趣的:(redis笔记,分布式,redis,缓存)