connect('127.0.0.1',6379);//获取客户端真实ip地址函数get_real_ip(){static$realip;if(isset($_SERVER)){if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$realip=$_SERVER['HTTP_X_FORWARDED_FOR'];}elseif(isset($_SERVER['HTTP_CLIENT_IP'])){$realip=$_SERVER['HTTP_CLIENT_IP'];}else{$realip=$_SERVER['REMOTE_ADDR'];}}else{if(getenv('HTTP_X_FORWARDED_FOR')){$realip=getenv('HTTP_X_FORWARDED_FOR');}elseif(getenv('HTTP_CLIENT_IP')){$realip=getenv('HTTP_CLIENT_IP');}else{$realip=getenv('REMOTE_ADDR');}}返回$realip;}//这个key记录了这个ip的访问次数,也可以改成用户id$key=get_client_ip();//Key记录访问次数。目前以IP为例,也可以使用userid作为key,如userid_123456//限制为3次。$limit=3;$time_slot=60;//时间段$check=$redis->exists($key);如果($检查){$redis->incr($key);$count=$redis->get($key);if($count>$limit){//returnjson_encode(['flag'=>0,'msg'=>'超出限制']);exit('已超出限制');}}else{$redis->incr($key);//限制时间为60秒$redis->expire($key,$time_slot);}//调试$count=$redis->get($key);echo''.$count.'要求';
