流程
1. 客户端C1申请加锁,key为myLock
2. 如果key不存在,通过hset设置值,通过pexpire设置过期时间。同时开启Watchdog任务,默认每隔10秒中判断一下,如果key还在,重置过期时间到30秒<br>
3. 客户端C1相同线程再次加锁,如果key存在,判断Redis里Hash中的lockName跟当前线程lockName相同,则将Hash中的lockName的值加1,代表支持可重入加锁
4. 客户单C2申请加锁,如果key存在,判断Redis里Hash中的lockName跟当前线程lockName不同,则执行pttl返回剩余过期时间
5. 客户端C2线程内不断尝试pttl时间,此处是基于Semaphore信号量实现的,有许可立即返回,否则等到pttl时间还是没有得到许可,继续重试