这篇文章介绍的内容是关于php结合redis来限制用户或者ip某个时间段内访问的次数 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
//获取客户端真实ip地址 function get_real_ip(){
static $realip;
if(isset($_server)){
if(isset($_server['http_x_forwarded_for'])){
$realip=$_server['http_x_forwarded_for'];
}else if(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');
}else if(getenv('http_client_ip')){
$realip=getenv('http_client_ip');
}else{
$realip=getenv('remote_addr');
}
}
return $realip;
}
//这个key记录该ip的访问次数 也可改成用户id $key = get_client_ip(); //该key记录访问的次数,目前是以ip为例,也可以把用户id作为key,如userid_123456
//限制次数为3次。 $limit = 3;
$check = $redis->exists($key);
if($check){
$redis->incr($key);
$count = $redis->get($key);
if($count > 3){
exit('已经超出了限制次数');
}
}else{
$redis->incr($key);
//限制时间为60秒
$redis->expire($key,60);
}
$count = $redis->get($key);
echo '第 '.$count.' 次请求';
相关推荐:
php操作使用redis常用方法代码和例子大全
php-redis 的session操作
以上就是php结合redis来限制用户或者ip某个时间段内访问的次数的详细内容。