最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何使用Redis構(gòu)建分布式鎖

 更新時間:2020年01月16日 08:29:38   作者:ExplorerMan  
這篇文章主要介紹了python如何使用Redis構(gòu)建分布式鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了python如何使用Redis構(gòu)建分布式鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在實際應(yīng)用場景中,我們可能有多個worker,可能在一臺機(jī)器,也可能分布在不同的機(jī)器,但只有一個worker可以同時持有一把鎖,這個時候我們就需要用到分布式鎖了。

這里推薦python的實現(xiàn)庫,Redlock-py (Python 實現(xiàn)).

正常情況下,worker獲得鎖后,處理自己的任務(wù),完成后自動釋放持有的鎖,是不是感覺有點熟悉,很容易想到我們的上下文管理器,這里我們簡單的用裝飾器實現(xiàn) with...as... 語法。

安裝Redlock-py

$ pip install redlock-py

使用python自帶的 contextmanager 裝飾器試下上下文管理

from contextlib import contextmanager
from redlock import Redlock

@contextmanager
def worker_lock_manager(key, ttl, **kwargs):
  """
  分布式鎖
  :param key: 分布式鎖ID
  :param ttl: 分布式鎖生存時間
  :param kwargs: 可選參數(shù)字典
  :return: None
  """
  redis_servers = [{
    'host': '127.0.0.1',
    'port': 6379,
    'db': 0,
    'password': 'pwd'
  }]

  rlk= Redlock(redis_servers)

  # 獲取鎖
  lock = rlk.lock(key, ttl)
 
  yield lock

  # 釋放鎖
  rlk.unlock(lock)

如何使用呢

with worker_lock_manager('unique_key', 1000) as w_lock:
    if w_lock is False:
        return
    do_something()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python開發(fā)入門——set的使用

    python開發(fā)入門——set的使用

    這篇文章主要介紹了python set的使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • 對python中兩種列表元素去重函數(shù)性能的比較方法

    對python中兩種列表元素去重函數(shù)性能的比較方法

    今天小編就為大家分享一篇對python中兩種列表元素去重函數(shù)性能的比較方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • django基于cors解決跨域請求問題詳解

    django基于cors解決跨域請求問題詳解

    這篇文章主要介紹了django基于cors解決跨域請求問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 在Python程序員面試中被問的最多的10道題

    在Python程序員面試中被問的最多的10道題

    本篇文章我們?yōu)榇蠹艺砹嗽赑ython程序員面試中被問的最多的10道題,我們還給出了最簡便的解決辦法,一起學(xué)習(xí)下。
    2017-12-12
  • python 字符串轉(zhuǎn)列表 list 出現(xiàn)\ufeff的解決方法

    python 字符串轉(zhuǎn)列表 list 出現(xiàn)\ufeff的解決方法

    下面小編就為大家?guī)硪黄猵ython 字符串轉(zhuǎn)列表 list 出現(xiàn)\ufeff的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 基于Python實現(xiàn)錄音功能的示例代碼

    基于Python實現(xiàn)錄音功能的示例代碼

    今天我們來介紹一個好玩且實用的東西,我們使用python來實現(xiàn)一個錄音的功能。文中的示例代碼簡潔易懂,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧
    2023-02-02
  • python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣

    python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣

    這篇文章主要介紹了python Pandas如何對數(shù)據(jù)集隨機(jī)抽樣,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python?的矩陣傳播機(jī)制Broadcasting和矩陣運算

    Python?的矩陣傳播機(jī)制Broadcasting和矩陣運算

    這篇文章主要介紹了Python?的矩陣傳播機(jī)制Broadcasting和矩陣運算,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Python異常之常見的Bug類型解決方法

    Python異常之常見的Bug類型解決方法

    這篇文章主要介紹了Python異常之常見的Bug類型解決方法,主要分享一些粗心導(dǎo)致和知識不熟練導(dǎo)致的語法錯誤以及被迫掉坑等內(nèi)容,文章介紹非常詳細(xì)需要的小伙伴可以參考一下
    2022-03-03
  • python之?dāng)?shù)字圖像處理方式

    python之?dāng)?shù)字圖像處理方式

    這篇文章主要介紹了python之?dāng)?shù)字圖像處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

湟中县| 尚志市| 丹凤县| 安岳县| 静乐县| 安徽省| 贵州省| 贵州省| 博兴县| 三门峡市| 瓮安县| 淳化县| 贵州省| 贵州省| 宜丰县| 木兰县| 恩平市| 嘉荫县| 石河子市| 昭通市| 绵竹市| 塔河县| 陇南市| 滕州市| 和政县| 盖州市| 陇西县| 天镇县| 桐梓县| 江阴市| 灵山县| 调兵山市| 鸡东县| 聊城市| 宁明县| 马公市| 瑞金市| 天峻县| 五寨县| 呼和浩特市| 奉贤区|