开发中不可避免的是碰到并发请求,在数据严谨性的要求不高时,咱们也不须要作什么处理,但若是碰到数据严谨性很是高的时候(例如:用户金额,秒杀产品的库存...),咱们就须要慎重处理了。redis
解决方案多种多样,下面是一个redis锁的解决方案,直接看示例代码(PHP)并发
$key = 'lock_key'; try { if (!$redis->sadd($key, 1)) { // 加锁 throw new Exception('你来慢一步'); } /** * 业务逻辑实现 */ $redis->del($key); // 解锁 } catch (Exception $e) { // 异常处理 }
稍微须要注意的是,在加锁这一步,若是用set来实现,是有坑的、、、至于什么坑,你能够写个代码实现下就知道了。。。spa