基於redis做分散式鎖

bytesmover發表於2024-03-11

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則說明獲取到鎖了,否則獲取失敗

相關文章