You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis锁获取失败:程序持续运行却始终无法获取锁

解决aioredis锁无法获取的问题

针对你遇到的async with redis.lock("hello_lock")卡住的情况,按以下步骤排查:

  • 检查锁是否被残留持有
    直接用Redis命令行工具确认锁状态:

    redis-cli EXISTS hello_lock
    

    如果返回1,说明锁被其他进程/残留会话持有,手动删除锁重试:

    redis-cli DEL hello_lock
    
  • 显式设置锁超时时间
    避免因异常崩溃导致锁永久残留,创建锁时指定超时(单位秒),确保锁会自动释放:

    async with redis.lock("hello_lock", timeout=10) as lock:
        print("hello")
        await redis.hset("hello", "1", "2")
    
  • 验证Redis连接有效性
    在获取锁前先测试连接是否正常,排除连接池异常:

    # 在创建redis实例后添加
    await redis.ping()
    print("Redis连接正常")
    
  • 排查其他持有锁的进程
    检查是否有其他服务、脚本或同一程序的其他实例正在持有hello_lock,未正常释放锁(比如未通过上下文管理器退出、进程崩溃未触发锁释放)。

内容的提问来源于stack exchange,提问作者3awny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:27:09