PHP实现redis限制单ip、单用户的访问次数功能示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-10-01 16:53:59 浏览: 评论:0
这篇文章主要介绍了PHP实现redis限制单ip、单用户的访问次数功能,结合实例形式分析了php连接redis及获取、记录客户端信息,并限制客户访问次数等操作技巧,需要的朋友可以参考下。
本文实例讲述了PHP实现redis限制单ip、单用户的访问次数功能,分享给大家供大家参考,具体如下:
有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次
类似于这样的需求很容易用Redis来实现
- <?php
- $redis = new Redis();
- $redis->connect('127.0.0.1', 6379);
- $redis->auth("php001");
- //这个key记录该ip的访问次数 也可改成用户id
- //$key = 'userid_11100';
- $key=get_real_ip();
- //限制次数为5
- $limit = 5;
- $check = $redis->exists($key);
- if($check){
- $redis->incr($key);
- $count = $redis->get($key);
- if($count > 5){
- exit('请求太频繁,请稍后再试!');
- }
- }else{
- $redis->incr($key);
- //限制时间为60秒
- $redis->expire($key,60);
- }
- $count = $redis->get($key);
- echo '第 '.$count.' 次请求';
- //获取客户端真实ip地址
- function get_real_ip(){
- static $realip;
- if(isset($_SERVER)){
- if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
- $realip=$_SERVER['HTTP_X_FORWARDED_FOR'];
- }else if(isset($_SERVER['HTTP_CLIENT_IP'])){
- $realip=$_SERVER['HTTP_CLIENT_IP'];
- }else{
- $realip=$_SERVER['REMOTE_ADDR'];
- }
- }else{
- if(getenv('HTTP_X_FORWARDED_FOR')){
- $realip=getenv('HTTP_X_FORWARDED_FOR');
- }else if(getenv('HTTP_CLIENT_IP')){
- $realip=getenv('HTTP_CLIENT_IP');
- }else{
- $realip=getenv('REMOTE_ADDR');
- }
- }
- return $realip;
- }
- ?>
Tags: redis PHP限制单ip
相关文章
- ·php实现redis数据库指定库号迁移(2014-09-10)
- ·redis访问权限控制,密码设置(2014-09-10)
- ·php怎么安装redis扩展?redis安装以及php扩展的介绍(2018-07-20)
- ·laravel项目利用twemproxy部署redis集群的完整步骤(2018-11-07)
- ·PHP+redis实现的悲观锁机制示例(2018-11-14)
- ·PhpRedis与Predis之间的性能比较(实例)(2020-02-04)
- ·Redis分片(分布式缓存)(2020-02-04)
- ·浅谈redis的缓存穿透和缓存失效的预防和解决(2020-04-09)
- ·PHP使用Redis的GEO(地理位置)命令(2020-04-28)
- ·php实现redis数据库指定库号迁移的方法(2021-05-08)
- ·php操作redis缓存方法分享(2021-05-27)
- ·PHP实现操作redis的封装类完整实例(2021-06-26)
- ·PHP+redis实现添加处理投票的方法(2021-06-26)
- ·PHP使用redis实现统计缓存mysql压力的方法(2021-06-26)
- ·PHP使用Redis实现防止大并发下二次写入的方法(2021-08-11)
- ·PHP+Redis 消息队列 实现高并发下注册人数统计的实例(2021-09-01)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)