有時候為了限制某個用戶或者某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)<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 '投票邏輯';
}else{
echo '10分鐘內投票次數已達到最大5,稍後再試!';
}
}else{
echo 'Redis is gone!';
}
*