![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 65
懒猫一小只
这个作者很懒,什么都没留下…
展开
-
PHP+laravel 高并发下接口限流方案
一、什么是接口限流那么什么是限流呢?顾名思义,限流就是限制流量,包括并发的流量和一定时间内的总流量,就像你宽带包了1个G的流量,用完了就没了,所以控制你的使用频率和单次使用的总消耗。通过限流,我们可以很好地控制系统的qps,从而达到保护系统或者接口服务器稳定的目的。二、常用的接口限流算法1、计数器法2、漏桶算法3、令牌桶算法今天主要使用令牌桶算法进行接口限流(基于laravel框架)首先,我们有一个固定容量的桶,桶里存放着令牌(token)。桶一开始是空的(可用token数为0),token原创 2021-11-10 16:08:33 · 2590 阅读 · 0 评论 -
php + redis实现秒杀系统
秒杀下单和普通下单的主要区别:**普通下单:**查询库存,判断库存,如果有库存则创建订单,如果没有库存则提示库存不足**秒杀下单:**秒杀期间一般人数比较大,且访问集中,导致并发大,如果还按照普通下单逻辑,当库存很多的时候没有问题,但是当库存只剩下1个时,如果此时有10个人同时下单,则会出现查询库存时每个人都查询到库存还剩1个,则每个人都下单成功,而实际上就只有1个库存,导致超卖9个,所以秒杀商品时要解决的一个重要问题就是商品超卖的问题下面我将基于laravel的基础之上,通过redis乐观锁的和re原创 2021-10-16 15:48:24 · 3371 阅读 · 1 评论 -
Redis 缓存击穿、穿透、雪崩的原因以及解决方案
一、缓存穿透原因描述:指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果 key 不存在或者 key 已经过期,再对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。但是这种方法存在一个问题,比如我传一个用户 id 为 - 1,这个用户 id 在缓存里面是肯定不存在的,所以会去数据库里面查询,如果有搞事情的人,大批量请求并传用户 id 为 - 1,那就和没用 redis 一样,导致数据库压力过大而崩溃。解决方法:方法一:在接口层原创 2021-10-12 17:11:48 · 1069 阅读 · 0 评论