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

WBOY
リリース: 2016-06-20 13:03:17
オリジナル
1145 人が閲覧しました

一定期間内の特定のユーザーまたは 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;;
}
ログイン後にコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!