jedis.expire(lockKey, expireTime); } } 上面的代碼有一個致命的問題,就是加鎖和設(shè)置過期時間不是原子操作。 那么會有兩種極端情況: 一種是在并發(fā)情況下,兩個線程同時執(zhí)行setnx,那么得到的結(jié)果都是1,這樣兩個線程同時拿到了鎖。 別一種是如代碼注釋所示,即執(zhí)行完setnx,程序崩潰沒有執(zhí)行過期時間,那這把鎖就...
www.dbjr.com.cn/article/1947...htm 2025-5-17