基于redis做分布式锁

1. setnx其实是set key nx,做分布式锁的问题是担心获取到锁的那个线程还没执行del得时候挂了,key会永久存在,可以给key加上expire,其实就是setnx key ex xxx nx 但如何确定expire多大呢?没法确定,所以一般在expire之前做一个续期操作,用独立线程做

2. 另一种做法是还是用setnx,如果获取不到,则先get,value是v1, 再取getset,返回v2,如果v1==v2则说明获取到锁了,否则获取失败

 

posted on 2024-03-11 16:29  bytesmover  阅读(5)  评论(0编辑  收藏  举报