PHP+REDIS设置请求限流(设置1秒内最大请求数1000QPS)

复制代码
双十一期间要做活动,设置商品请求限流,护航秒杀活动正常进行!

#设置1秒内最多同时1000请求
$maxNum = 1000;
$redisKey = 'GoldMall:Huodong:gid'.$g_id.'_'.date('s');
$onlineNum = (int)$this->redis->get($redisKey);
if($onlineNum){
    $onlineNum++;
    $this->redis->set($redisKey,$onlineNum,1);
}else{
    $onlineNum = 1;
    $this->redis->set($redisKey,$onlineNum,1);
}
if($onlineNum>$maxNum){
    $this->jsonResponse(401,"服务器繁忙请稍后再试~{$onlineNum}");
}

以上代码经过实践测试,OK的!

相关推荐
SQL7716 小时前
IT运维发展史,一部宏伟史诗
运维·运维发展史
阿洛学长16 小时前
PHP开发框架对比:Laravel、Yii、Tp、Yaf、Swoole
php·laravel·swoole
分布式存储与RustFS17 小时前
Terraform 状态文件老在本地丢、并发还撞锁:把 state 锁进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
csdn_aspnet17 小时前
macOS 10 、Docker 玩轉 MySQL
运维·mysql·macos·docker·容器·mac
Risehuxyc17 小时前
GetCpolar留V3版去掉V2版
php
2501_9339232518 小时前
redis:string类型常见命令
数据库·redis·缓存
黄连木笛19 小时前
不改 Redis Insight 原有代码,把它汉化了:DOM 整段匹配 + XHR 拦截 + asar 重打包
redis·后端
爱和冰阔落19 小时前
【Linux网络】TCP 半包粘包怎么解决?从长度报头、JSON 拆包到网络计算器完整实战
linux·运维·网络·tcp/ip
时间的拾荒人21 小时前
Redis 哨兵(Sentinel)详解:原理、选举机制与实战部署
redis·面试·架构·sentinel
黄连木笛21 小时前
Redis Insight 汉化教程:Windows / macOS / Linux 设置中文界面(附繁體、教程汉化、关闭自动更新)
数据库·redis·缓存