程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP+Redis/Memcache(過期機制)實現高效限制一段時間內

PHP+Redis/Memcache(過期機制)實現高效限制一段時間內

編輯:PHP綜合

有時候為了限制某個用戶或者某ip用戶一段時間內最大操作次數,我們可能會用mysql直接記錄每次的用戶的記錄,通過time時間字段來統計某時間段操作次數來限制,為了高效的實習類似的邏輯,我們可以使用key/value,高效完成這種邏輯。

例如實現:一個用戶10分鐘內最多投票5次

$redis = new Redis();
$redis_conn = $redis->connect('127.0.0.1',6379);	

if($redis_conn){
    $result = json_decode($redis->get('test'), true); 
    $result = is_array($result)?$result:array();
    
    if(count($result)<5 || ($last = array_shift($result) < time()-10*60)){
        array_push($result, time());
        $redis->setex("test", 10*60, json_encode($result));
        //echo $redis->ttl("test");
        echo '投票邏輯';
    
    }else{
        echo '10分鐘內投票次數已達到最大5,稍後再試!';
    }
}else{
    echo 'Redis is gone!';
}
*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved