gpt4 book ai didi

python - 使用python redis事务时有没有办法插入一些python语句?

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

Redis 在python 中非常容易使用。但是,现在我在使用 Redis 事务时遇到了问题。首先,我必须得到一个 key在 Redis 中,接下来我必须检查绑定(bind)到此键的值是否合法。我希望这些操作是原子的。这是我的代码。

pipe = redis_conn.pipeline()
pipe.multi()
var = pipe.get('key_want_to_be_read')
if is_legal(val):
do_something
else:
do_another_thing
pipe.execute()

但是,当我运行这些代码时,python 名称 var未绑定(bind)到存储在 redis 中的值,而是绑定(bind)到 Pipeline<ConnectionPool<Connection<host=localhost,port=6379,db=0>>> , 所以。有什么方法可以获取 key 并将其绑定(bind)到 redis 事务中的 python 名称?

最佳答案

你可以像这样注册一个lua脚本:

import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
redis_script = r.register_script("""
local valueToTest = redis.call('GET','{key}')
--Test key in lua
""".format(key=key_to_be_read))

然后用redis_script()调用它

来自Redis site这是原子的:

Redis uses the same Lua interpreter to run all the commands. Also Redis guarantees that a script is executed in an atomic way: no other script or Redis command will be executed while a script is being executed.

关于python - 使用python redis事务时有没有办法插入一些python语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072438/

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