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)
- 最新评论