先拿 setnx 來爭搶鎖,搶到之后,再用 expire 給鎖加一個過期時間防止鎖忘記了
釋放。
這時候對方會告訴你說你回答得不錯,然后接着問如果在 setnx 之后執行 expire
之前進程意外 crash 或者要重啟維護了,那會怎么樣?
這時候你要給予驚訝的反饋:唉,是喔,這個鎖就永遠得不到釋放了。緊接着你
需要抓一抓自己得腦袋,故作思考片刻,好像接下來的結果是你主動思考出來的,
然后回答:我記得 set 指令有非常復雜的參數,這個應該是可以同時把 setnx 和
expire 合成一條指令來用的!對方這時會顯露笑容,心里開始默念:摁,這小子
還不錯。