<?php namespace App\Servers\Redis;

use App\Facades\Servers\Redis\Redis;

/**
 * 缓存上锁
 * 
 */
class RedisLock
{

    /**
     * 上异步锁
     * @param  string  $key     上锁key名
     * @param  mixed   $value   上锁key值
     * @param  int     $ex      加上互斥锁时长，避免超时
     */
    public function lock($key,$value,$ex=20){
        // 上锁结果
        return Redis::set($key, $value,'EX',$ex,'NX');
    }

    /**
     * 释放异步锁
     * @param  string  $key     上锁key名
     * @param  mixed   $value   上锁key值
     * 
     */
    public function unlock($key,$value){
        // 释放锁
        if( Redis::get($key) == $value )  return Redis::del($key);
        // 释放失败
        return  true;
    }

}