PHP 限制访问频率,Redis 通用不限制PHP框架版,支持毫秒缓存

19 篇文章 0 订阅
9 篇文章 0 订阅

PHP 限制访问频率,Redis 通用不限制PHP框架版,支持毫秒缓存,适用于项目的api接口限制访问频率

前言

之前“ThinkPHP6 限制访问频率,Redis版,支持毫秒缓存”针对 “ThinkPHP6 限制访问频率,Cache版”做了升级,考虑有的朋友使用的框架不是ThinkPHP6,索性再做一个PHP Redis通用版不限制PHP框架的访问频率控制类,有需要的直接拿去复用就好,非常方便。

首先我们要安装和配置好PHP Redis缓存所以需要环境条件

使用注意事项:

①系统需要安装Redis
在这里插入图片描述
②启用php redis扩展

在这里插入图片描述

PHP 简洁版Redis连接类

class Rds
{
    public function connect(){
        $redis = new \Redis(); //创建一个对象
        $redis->connect('127.0.0.1',6379); //连接redis
        $redis->auth('66666666'); //连接密码
        $redis->select(0); //选择数据库(默认16个数据库,0-15,这个值可以在配置文件修改。)
        return $redis;
    }
}

使用方式

$redis = Rds::connect(); //连接
$redis->set('abcdefghijk',9999999); //设置值
var_dump($redis->get('abcdefghijk')); //打印值

限制访问频率代码如下,仅供参考



/**
* 检测用户接口访问频率
* $action 字符串 自定义,建议使用 模块方法名称
* $ttl 正整数 秒,默认1秒
* $uid 用户ID,针对某个用户的ID的限制
* 
**/

function api_visits($action,$ttl=500,$uid='')
{


    $key = "user_{$uid}_api_{$action}";

	//通用版获取缓存方式
    $redis = Rds::connect(); //连接
    $visits = $redis->get($key);

    if($visits){

        return false;

    }else{
		
		//通用版设置缓存方式
        $redis->psetex($key,$ttl,1);//缓存500毫秒

        return true;

    }

}

//使用方式:


$uid = 66;

$ttl = 500;

$visitsRes = api_visits('login_verify',$ttl,$uid);

if($visitsRes)
	return $this->error('接口访问频繁,请稍后再试');

return $this->success('Success');

总结

以上就是PHP 限制访问频率,Redis 通用不限制PHP框架版,支持毫秒缓存实现过程,希望对需要的同学有所帮助。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

upcto

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值