redis分布式锁

先去获取redis中value,没有,get setnx的key,如果返回key已经存在,则用get获取key的value,判断value中的时间是否超时,如果没有超时直接返回,如果超时则使用getset设置value为当前时间+超时时间,然后判断返回的value也就是旧的超时时间是否和get获取到的一致,不一致说明别的线程获取成功了,则返回,然后删除锁,即使同时多个设置了getset新的value,也没关系,只是一瞬间设置了,超时时间不会超过一秒

posted @ 2019-04-16 10:43  追逐~~~  阅读(125)  评论(0编辑  收藏  举报