1、线程t1 setnx不成功则休眠后继续setnx
2、线程t1 setnx成功后记录value为时间戳 ts_t1,然后set 合理的过期时间 expire
3、ts_t1 过期后自动失效
4、t1结束:在有效期内则立即del释放锁
5、t1结束:锁已过期则不做任何动作
2021.5.12 更新:回头看几年前写的东西,漏洞还是挺多的,补充下本文需要解决的问题
1、锁是否具有可重入性?如何应对递归的场景?
2、处理业务期间,分布式锁过期,如何续约?
3、redis集群情况下,更复杂的存储场景?