单页网站上传教程,东莞沙田门户网站建设,wordpress 自定义分类,专做正品的护肤品网站目录
1.短信登录
1.1基于Session登录#xff08;已被Redis代替#xff09;
1.2cookie和session
2.添加Redis缓存
2.1根据id查询商户信息
2.2缓存穿透
2.3缓存雪崩 《黑马点评》Redis高并发项目实战笔记【完结】P1~P72_黑马点评笔记-CSDN博客
1.短信登录
1.1基于Sess…目录
1.短信登录
1.1基于Session登录已被Redis代替
1.2cookie和session
2.添加Redis缓存
2.1根据id查询商户信息
2.2缓存穿透
2.3缓存雪崩 《黑马点评》Redis高并发项目实战笔记【完结】P1~P72_黑马点评笔记-CSDN博客
1.短信登录
1.1基于Session登录已被Redis代替
实战篇-04.短信登录-实现发送短信验证码功能_哔哩哔哩_bilibili 1.2cookie和session
最重要的区别在于
Cookie存储在客户端浏览器中
Session存储在服务器端 2.添加Redis缓存
缓存就是数据交换的缓冲区是存储数据的临时地方一般读写性能较高
缓存作用降低后端负载提高读写的效率降低响应时间
2.1根据id查询商户信息 2.2缓存穿透
缓存穿透是指在使用缓存例如 Redis、Memcached时缓存和数据库中都没有要查询的数据导致请求每次都直接打到数据库上造成数据库负载过大甚至可能导致系统崩溃
缓存穿透的典型场景
用户请求一个数据库中不存在的商品ID、用户ID等攻击者利用这一点通过大量不存在的键进行请求绕过缓存直接攻击数据库
缓存穿透的原因
缓存中没有数据对于不存在的数据缓存不会保存这类数据的缓存查询的 Key 存在问题例如查询一个非法或错误的 Key导致缓存中未命中恶意攻击攻击者故意构造大量不存在的 Key 来查询造成数据库压力
缓存穿透的解决方案
1.使用空值缓存
当查询的 Key 在数据库中不存在时将一个空值或者特定标记存入缓存并设置较短的过期时间。优点简单有效防止相同的无效请求反复查询数据库。缺点可能占用一定的缓存空间特别是在大量无效 Key 时
2.布隆过滤器Bloom Filter
3.限流和防刷 对于频繁访问同一个 Key 的 IP 或用户进行访问限流或黑名单处理使用工具如 Sentinel 等来控制请求频率 在实际开发中可以结合空值缓存、布隆过滤器和限流防刷三种方法来防止缓存穿透。
简单场景使用空值缓存大规模场景引入布隆过滤器恶意攻击场景使用限流和黑名单策略
2.3缓存雪崩
缓存雪崩是指在同一时间大量缓存数据过期失效导致大量请求直接打到数据库瞬间使数据库承受巨大压力甚至可能导致系统崩溃
缓存雪崩的原因
大量缓存集中过期如果大量缓存设置了相同的过期时间一旦这个时间点到达缓存全部失效请求会直接涌向数据库。缓存服务宕机如果缓存服务例如 Redis整体崩溃或不可用大量请求直接转向数据库。大量热点数据失效热点数据突然失效导致大量用户请求直接访问数据库
解决方案
解决大量缓存key同时失效给不同Key的TTLTime To Live添加随机值解决Redis宕机利用Redis集群提高服务的可用性