zoukankan      html  css  js  c++  java
  • redis 频率限制

    方式1:

    $redis = new Redis();
    
    //以自然时间控制 一自然分钟内超过100次进行限制, 屏蔽多久的时间必须为计数key时间的倍数
    $key = 'xxxx'.date('Y-m-d H:i:s');
    $fkey = 'xxxx';//屏蔽key
    
    if(false !== $redis->set($fkey))
    {
        return false;
    }
    

    /////
    //更优的处理方式
    if($num === false)
    {
    $redis->set($key, 1, array('NX', 'PX' => 60));
    }else{
    $redis->incr($key);
    }
    /////

    if($num = $redis->get($key)>100)
    {
        $redis->set($fkey,true,60);
    
    }else{
        $redis->incr($key);
        if($num == 1)
        {
            $redis->expire($key, 60); //保持跟自然间隔时间相同
        }
    }

    方式2:

    //以持续时间控制 一分钟内超过100次进行限制, 屏蔽多久的时间必须大于 计数key的时间,否则会计数出错
    $key = 'xxxx';
    if($redis->get($key)>100)
    {
    
    }else{
        $redis->incr($key);
        if($num == 1)
        {
            $redis->expire($key, 60);
        }
    }

    每个指定自然秒

    //根据每隔多少自然秒生成key
    function getZiRanKey($sec) {
        
    //     $time = strtotime('2017-04-23 17:30:04');
        $time = time();
        $time = $time - ($time%$sec);
        return date('Y-m-d H:i:s',$time);
       
    }
  • 相关阅读:
    171. Excel Sheet Column Number (Easy)
    349. Intersection of Two Arrays (Easy)
    453. Minimum Moves to Equal Array Elements (Easy)
    657. Judge Route Circle (Easy)
    CSS笔记
    保存页面状态
    UI开发总结
    ubuntu 下配置munin
    反向代理配置
    JavaScript 高级程序设计第二版
  • 原文地址:https://www.cnblogs.com/siqi/p/6753284.html
Copyright © 2011-2022 走看看