欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP+Redis/Memcache(过期机制)实现高效限制一段时间内操作次数限制逻辑

程序员文章站 2022-05-19 13:42:54
...
有时候为了限制某个用户或者某ip用户一段时间内最大操作次数,我们可能会用mysql直接记录每次的用户的记录,通过time时间字段来统计某时间段操作次数来限制,为了高效的实习类似的逻辑,我们可以使用key/value,高效完成这种逻辑。

例如实现:一个用户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)setex("test", 10*60, json_encode($result));
        //echo $redis->ttl("test");
        echo '投票逻辑';
    
    }else{
        echo '10分钟内投票次数已达到最大5,稍后再试!';
    }
}else{
    echo 'Redis is gone!';
}
相关标签: redis