本人测试系统: CentOS Linux 7.4.1708 (Core) Apache 2.4 PhP7.1
function frequent ($seconds,$counting,$jump){
$redis=new Redis(); // Redis 实例
$redis->connect ('127.0.0.1',6379); //连接本地的 Redis 服务
session_start(); //初始SESSION
$key=isset($_SESSION['r_key']) ? $_SESSION['r_key'] : null; //首次是空值
$check=$redis->exists ($key); //检查 $key 是否存在
if ($check){ //首次 不存在
$redis->incr ($key); //首次$key不存在初始数字值0,Incr将$key数字值+1
$count=$redis->get ($key); //取 $key 数字值
if ($count>$counting){ //expire时间内 可用次数$counting
Header ("Location: ".$jump); //$counting次数用完 $jump跳转地址
exit ;
}
}else {
unset($_SESSION["r_key"]); //清除SESSION r_key
$_SESSION['r_key']=random (2); //SESSION r_key赋值随机12位字符串
$key=$_SESSION['r_key'];
$redis->incr ($key); //首次$key不存在初始数字值0,Incr将$key数字值+1
$redis->expire ($key,$seconds); //expire将 $key存在$seconds秒 后 $key自动删除
}
}
//30秒内 可以浏览10次 否则跳转到http://er.hak.red/101/
frequent(30,10,'http://er.hak.red/101/');
random (2); //随机12位字符串 Random函数地址
源码附件 -> 源码下载