Table of Contents
-
pipe = r.pipeline() pipe.set('fans',50) # 多条命令 pipe.execute() pipe.get('fans') # 多条命令 pipe.execute() # 执行
python恢复备份
- 两种数据库同时开启,优先使用AOF恢复数据库
Redis分布式锁是怎么回事?
- 多个进程同时去拿一个数据,如果执行成功释放锁,下一个进程可以拿到锁执行程序
- 具有阻塞时间,避免了死锁,
- 典型应用:秒杀
Redis 缓存穿透(防止攻击)
- 原理:
- 缓存和数据库都没有的数据,用户反复发送数据查询,假的数据,用户id
- 场景
- 发起id为-1或者非常大的数据,这就属于一种攻击,倒是数据库压力过大
- 解决方案
- 请求效验,对id<=0直接拒绝
- 无法获取的数据将key和value(空值)存入缓存,设置有效缓存时间,可以防止用户反复用同一个id暴力攻击
Redis 缓存击穿(逻辑处理不好)
- 原理:
- 缓存过期之后,缓存没有数据,数据库有,导致瞬时并发太大
- 方案:
- 热点数据不过期(大访问量,常被访问)
- 上锁:重新设置缓存使用方式,查询key,先查缓存,没有就通过锁来访问
Redis 缓存雪崩
- 原理
- 缓存中大量数据过期,瞬间进入数据库大批量请求
- 解决方案
- 1,缓存设置随机时间(避免同一时间大量请求)
- 2,热点数据不过期(大访问量,常被访问)
哈希碰撞
- redis已经做了技术处理
- 常用哈希碰撞的方法:单链表,二次地址,二次哈希
- 在计算key的位置时候,两个key的位置一样,就是哈希碰撞,
4.扩展延伸知识
5.知识内容个人梳理
6.今天都复习了之前的什么内容
6.今天都复习了之前的什么内容