国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Redis 實現(xiàn)鎖

RiverLi / 3098人閱讀

摘要:基本原理就是使用的命令來實現(xiàn)。將的值設為,當且僅當不存在。設置失敗時,說明這個鎖正在使用中。在一定時間內,循環(huán)請求,直到當前鎖釋放,然后獲得鎖實例前文中連接的方法獲取鎖失敗此處進行操作,操作完成后釋放鎖防止死鎖,超過分鐘刪除參考資料。

導語

需求就不細說了,想必都遇到過要用數據鎖的場景。看了一些資料以及其他的代碼,修改記錄下。

SETNX

基本原理就是使用 Redis 的 SETNX 命令來實現(xiàn)。

key 的值設為 value ,當且僅當 key 不存在。

若給定的 key 已經存在,則 SETNX 不做任何動作。

SETNX 是『SET if Not eXists』(如果不存在,則 SET)的簡寫。

返回值:

設置成功,返回 1

設置失敗,返回 0

設置失敗時,說明這個鎖正在使用中。在一定時間內,循環(huán)請求,直到當前鎖釋放,然后獲得鎖

實例
setnx($redisKey, $redisValue);
        if (!$flag) {
            // 獲取鎖失敗
            usleep(200000);
            continue;
        }

        // 此處進行操作,操作完成后釋放鎖
        $redis->del($redisKey);
        return true;
    }

    // 防止死鎖,超過 5 分鐘刪除
    if (time() - $redis->get($redisKey) > (60 * 5)) {
        $redis->del($redisKey);
    }
    return false;
}


參考資料:SETNX。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30076.html

相關文章

  • 百度社招面試題——如何用Redis實現(xiàn)分布式

    摘要:集群實現(xiàn)分布式鎖上面的討論中我們有一個非常重要的假設是單點的。但是其實這已經超出了實現(xiàn)分布式鎖的范圍,單純用沒有命令來實現(xiàn)生成。這個問題用實現(xiàn)分布式鎖暫時無解。結論并不能實現(xiàn)嚴格意義上的分布式鎖。 關于Redis實現(xiàn)分布式鎖的問題,網絡上很多,但是很多人的討論基本就是把原來博主的貼過來,甚至很多面試官也是一知半解經不起推敲就來面候選人,最近結合我自己的學習和資料查閱,整理一下用Redi...

    YanceyOfficial 評論0 收藏0
  • Redis分布式

    摘要:之分布式鎖的實現(xiàn)方案如何優(yōu)雅地實現(xiàn)分布式鎖博客地址分布式鎖關鍵詞分布式鎖是控制分布式系統(tǒng)之間同步訪問共享資源的一種方式。 Redis之分布式鎖的實現(xiàn)方案 - 如何優(yōu)雅地實現(xiàn)分布式鎖(JAVA) 博客地址 https://blog.piaoruiqing.cn/2019/05/19/redis分布式鎖/ 關鍵詞 分布式鎖: 是控制分布式系統(tǒng)之間同步訪問共享資源的一種方式。 spring-d...

    LeoHsiun 評論0 收藏0
  • PHP 使用 Redis 實現(xiàn)分布式

    摘要:由于執(zhí)行的原子性所以不要在中執(zhí)行過長開銷的程序,否則會驗證影響其它請求的執(zhí)行。同一個腳本生成的簽名都是相同的,所以簽名可以先在本地生成,然后在服務器上一次腳本,程序中只需保存和使用該簽名即可。同樣的腳本,是始終生成相同的簽名的。 Last-Modified: 2019年6月5日15:59:34 參考鏈接 PHP使用Redis+Lua腳本操作的注意事項 《Redis官方文檔》用Redi...

    Coly 評論0 收藏0

發(fā)表評論

0條評論

RiverLi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<