<?PHPclassredis_lock{ Public Static functionGetredis () {$redis=NewRedis (); $redis->connect (' 182.254.208.72 ', 3838, 0); $redis->auth (' eh.123 '); return $redis; } Public Static functionLock$key,$expire= 60) { if(!$key) { return false; } $redis= Self::Getredis (); Do { if($acquired= ($redis->setnx ("lock:{$key}", Time()))) {//If Redis does not exist, it succeeds $redis->expire ($key,$expire); Break; } Usleep($expire); } while(true); return true; } //Release Lock Public Static functionRelease$key) { if(!$key) { return false; } $redis= Self::Getredis (); $redis->del ("lock:{$key}"); $redis-Close (); }}$redis= Redis_lock::Getredis (); Redis_lock:: Lock (' Lock ');$re=$redis->get (' Sentiger ');$re--;$redis->set (' Sentiger ',$re); Redis_lock:: Release (' Lock ');?>
Tests can be tested with AB test tools
PHP Internship Redis lock mechanism