python—防止缓存击穿

if redis_client.setnx(lock_key, 1):
    # 获取到锁
    try:
        # 查询数据库
        data = query_data_from_db()
        # 将数据写入缓存
        redis_client.setex(key, ttl, data)
    finally:
        # 释放锁
        redis_client.delete(lock_key)
else:
    # 等待其他线程查询数据库并写入缓存
    time.sleep(0.1)
    redis_client.get(key)

 

posted @ 2023-05-17 17:58  pywjh  阅读(19)  评论(0编辑  收藏  举报
回到顶部