快捷搜索:   nginx

ThinkPHP6 使用memcached进行缓存 TP6使用memcached进行限频操作

ThinkPHP6 TP6原生不支持memcached 只支持memcache 少个d功能少了很多,其实我们可以自己调用。

安装memcached的方法就不说了,网上一大堆,需要安装PHP支持。

使用方法参考我们下面的缓存IP作为频率限制的代码

public function count_cc()
   {
        if(class_exists('Memcached')){
           $key=$_SERVER['HTTP_CF_CONNECTING_IP'];//这里接入CF,所以读取CF传来的IP当成主键
           $count=30;//限制访问次数30次
           $expire=time()+120;//限制120秒内
           $memcached = new Memcached();
           $memcached->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
           if (!count($memcached->getServerList())) {
           $memcached->addServer('127.0.0.1',11211); // 连接服务器,这里使用memcached长链接,防止重复链接的额外开销
           }
           
          $val=$memcached->increment($key,1);
             if($val>$count){
                       die('您120秒内已请求'.$val.'次,超过当前系统限制'.$count.'次,请暂缓访问');
             }elseif(!$val){
                 $memcached->set($key,1,$expire);
                 $val=1;
                 //echo $val;
               }

     }     
 }
顶(0)
踩(1)

您可能还会对下面的文章感兴趣:

最新评论