zoukankan      html  css  js  c++  java
  • Redis的分布式锁python-redis-lock使用

    python-redis-lock

    多个redis客户端访问同一个redis服务端,控制并发。

    github:https://pypi.org/project/python-redis-lock/

    在使用这个库之前,需要安装如下:

    pip install python-redis-lock

    使用锁的示例:

    lock = redis_lock.Lock(conn, "name-of-the-lock")
    if lock.acquire(blocking=False):
        print("Got the lock.")
        lock.release()
    else:
        print("Someone else has the lock.")

    上面是单独设置锁的方式,还可以单独设置所有redis的操作加入锁。

    # On application start/restart
    import redis_lock
    redis_lock.reset_all(redis_client)

    快速使用

    1. 首先导入redis_lock

    import redis_lock

    2.将redis连接的客户端传入lock中,并设置lock的名称

    # 设置redis连接
    conn = redis.Redis(host='127.0.0.1', port=6379, decode_responses=True, db=0)
    # 设置redis锁
    lock = redis_lock.Lock(conn, "redis-lock")

    3.业务操作

     if lock.acquire(blocking=False):
            print("Got the lock.")
            # 获取lock,执行业务处理
            # 释放lock
            self.lock.release()
        else:
            print("Someone else has the lock.")      

    简单方式:

    with redis_lock.Lock(conn, "name-of-the-lock"):
        print("Got the lock. Doing some work ...")
        time.sleep(5)



  • 相关阅读:
    【题解】小Z的袜子
    浅谈最小生成树
    【题解】钻石收藏家
    浅谈线段树
    浅谈拓扑排序
    浅谈树的直径和树的重心
    浅谈求逆序对
    浅谈欧拉回路
    浅谈离散化
    浅谈高斯消元
  • 原文地址:https://www.cnblogs.com/-wenli/p/13740433.html
Copyright © 2011-2022 走看看