1. 程式人生 > >php 限制使用者介面請求頻率

php 限制使用者介面請求頻率

有時候我們需要限制一個API訪問的頻率,例如單使用者一分鐘之內只能訪問多少次。   
類似於這樣的需求很容易用Redis來實現。  

<?php   

$redis = new Predis\Client(array(  
    'scheme' => 'tcp',  
    'host'   => '127.0.0.1',  
    'port'   => '6379'  
));  

$redis->auth('123456');  

//這個key記錄該使用者1的訪問次數   
$key = 'user:1:api_count';  

//限制次數為10   
$limit = 10; $check = $redis->exists($key); if($check){ $redis->incr($key); //鍵值遞增 $count = $redis->get($key); if($count > 10){ exit('your have too many request'); } }else{ $redis->incr($key); //限制時間為60秒 $redis->expire($key,60); } $count
= $redis->get($key); echo 'You have '.$count.' request';