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