基於redis的分佈式鎖(按順序拿鎖和釋放)

之前知道可以通過redis的setnx來進行加鎖,但是,獲取鎖的順序是沒有保障的。剛好之前有寫過一個AQS的博客,所以基於那個隊列的原理寫一個非公平分佈式鎖。 主要原理是,每個想獲取鎖的節點需要通過以下步驟(若獲取鎖user): 1.拿到序列號(user:seq) 2.入等待隊列(隊列爲user:list)。 3.輪詢,若隊列頭部爲自己,則去獲取鎖。 主要接口爲以下,使用方法與ReentreenL
相關文章
相關標籤/搜索