gpt4 book ai didi

python - Redis 锁定一个 KEY

转载 作者:IT王子 更新时间:2023-10-29 06:04:25 25 4
gpt4 key购买 nike

我想在更新时锁定一个特定的键。尝试了下面的示例代码。

import redis

import time

conn = redis.StrictRedis(host='localhost', port=6379, db=0)

print ("previous Connected Key value is :" + conn.get('connected'))

print ("previous Operational Key value is :" + conn.get('operational'))

have_lock = False
my_lock = redis.Redis().lock("my_key")

try:

have_lock = my_lock.acquire(blocking=False)
#have_lock = my_lock.acquire(timeout=5)
if have_lock:
print("Got lock. Doing some stuff...")
time.sleep(15)
conn.set('connected', 'false')
conn.set('operational', 'false')
else:
print("Did not acquire lock.")

finally:

if have_lock:
my_lock.release()
print ("After Connected Key value is :" + conn.get('connected'))

print ('After Operational Key value is :' + conn.get('operational'))

上面的代码正在获取锁,但我仍然可以从 redis-cli 或其他一些应用程序访问 KEY。

如何锁定KEY?

最佳答案

根据设计,Redis 键在更新期间被锁定,您不需要锁定它们。事实上,Redis uses a single thread to process commands ,所以每个操作都是原子的。其他客户端在给定命令的处理过程中被阻塞,这就是为什么您不能执行长时间执行的查询(例如,您自己编写并使用 eval 执行的 Lua 脚本;或 key scan)。

关于python - Redis 锁定一个 KEY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com