php实习redis锁机制
Posted Sentiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php实习redis锁机制相关的知识,希望对你有一定的参考价值。
<?php class Redis_lock { public static function getRedis() { $redis = new redis(); $redis->connect(‘182.254.208.72‘, 3838, 0); $redis->auth(‘eh.123‘); return $redis; } public static function lock($key, $expire = 60) { if(!$key) { return false; } $redis = self::getRedis(); do { if($acquired = ($redis->setnx("Lock:{$key}", time()))) { // 如果redis不存在,则成功 $redis->expire($key, $expire); break; } usleep($expire); } while (true); return true; } //释放锁 public static function release($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‘); ?>
测试可以 用ab测试工具测试
以上是关于php实习redis锁机制的主要内容,如果未能解决你的问题,请参考以下文章