ホームページ  >  記事  >  バックエンド開発  >  PHP+Redis/Memcache (有効期限メカニズム) は、一定期間内の操作数を制限するための効率的な制限ロジックを実装します。

PHP+Redis/Memcache (有効期限メカニズム) は、一定期間内の操作数を制限するための効率的な制限ロジックを実装します。

WBOY
WBOYオリジナル
2016-06-20 13:03:171147ブラウズ

一定期間内の特定のユーザーまたは IP ユーザーの最大操作数を制限するために、mysql を使用して各ユーザーのレコードを直接記録し、時間フィールドを使用して一定期間内の操作数をカウントすることがあります。一定の期間を制限する効率的なインターンシップと同様のロジックでは、キー/値を使用してこのロジックを効率的に完了できます。

例: ユーザーは 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 &#39;投票逻辑&#39;;
    
    }else{
        echo &#39;10分钟内投票次数已达到最大5,稍后再试!&#39;;
    }
}else{
    echo &#39;Redis is gone!&#39;;
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。