首页 > php教程 > php手册 > 正文

检查/设置用户访问频率

php中文网
发布: 2016-06-07 11:38:19
原创
1475人浏览过

检查/设置用户访问频率 指定 user_marked在 time_slot 秒内最多访问 count次;
/**<br>  * 检查/设置用户访问频率 指定 user_marked在 time_slot 秒内最多访问 count次;<br>  * @param $lime_slot 时间片 单位秒<br>  * @param $count 整数<br>  * @param $user_marked 用户唯一标示,默认为客户端IP<br>  * @return array('status'=&gt;1,'info'=&gt;'') <br>  * @author leeyi <leeyisoft><br>  */<br> function check_rate_limiting($time_slot, $count, $user_marked='') {<br>     $user_marked = empty($user_marked) ? get_client_ip() : $user_marked;<br>     $cache_key = 'rate.limiting:'.$user_marked;<br>     $redis = new \Redis;<br>     $options = array (<br>         'host'          =&gt; C('REDIS_HOST') ? C('REDIS_HOST') : '127.0.0.1',<br>         'port'          =&gt; C('REDIS_PORT') ? C('REDIS_PORT') : 6379,<br>         'timeout'       =&gt; C('DATA_CACHE_TIMEOUT') ? C('DATA_CACHE_TIMEOUT') : false,<br>     );<br>     $res = $redis-&gt;connect($options['host'], $options['port'], $options['timeout']);<br>     $ret = array('status'=&gt;0, 'info'=&gt;'');<br>     if( false===$res) {<br>         $ret['info'] = '链接Redis失败';<br>         return $ret;<br>     }<br>     $redis-&gt;expire($cache_key, $time_slot); // 设置过期时间<br>     $list_len = $redis-&gt;llen($cache_key);<br>     if( $list_len         $redis-&gt;lpush($cache_key, NOW_TIME);<br>         $ret['status'] = 1;<br>     } else {<br>         $datetime = $redis-&gt;lindex($cache_key, -1); // -1 标示列表最后一个元素<br>         if( (NOW_TIME-$datetime)             $ret['info'] = '访问频率超过了限制,请稍后重试。';<br>             // $redis-&gt;ltrim($cache_key, -1, 0); //清空列表<br>         } else {<br>             $redis-&gt;lpush($cache_key, NOW_TIME);<br>             // <br>             $redis-&gt;ltrim($cache_key, 0, $count-1);<br>             $ret['status'] = 1;<br>         }<br>     }<br>     1==$ret['status'] &amp;&amp; $ret['info'] = $list_len+1;<br>     return $ret;<br><br> }</leeyisoft>

AD:真正免费,域名+虚机+企业邮箱=0元

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号