照著老師的寫了v1版本的,在windows上用ab測試了好多次都沒有出現問題,為啥?
<?php?
require './vendor/autoload.php';
use Predis\Client;
function getRedisClient(){
$server = array(
? ? 'host'? ? ?=> '127.0.0.1',
? ? 'port'? ? ?=> 6379
);
return new? Client($server);
}
function getKeyName($v){
return "mycounter_".$v;
}
function writeLog($msg,$v){
$log = $msg.PHP_EOL;
file_put_contents("log/$v.log", $log,FILE_APPEND);
}
function v1(){
$amountLimit = 100;
$keyName = getKeyName('v1');
$redis = getRedisClient();
$incrAmount = 1;
if(!$redis->exists($keyName)){
$redis->set($keyName,95);
}
$currAmount = $redis->get($keyName);
if($currAmount+$incrAmount>$amountLimit){
writeLog('Bad Luck','v1');
return;
}
writeLog('Good Luck','v1');
$redis->incrby($keyName,$incrAmount);
}
v1();
2019-05-14
我和你一樣,也沒有出現問題