📅  最后修改于: 2023-12-03 15:34:41.988000             🧑  作者: Mango
Redis事务是一种用于执行多个命令的机制,其目的是原子地执行一组命令。在事务中,结果要么完全执行,要么完全不执行,这可以确保在多个命令同时进行时不会出现竞态条件。
Redis事务由 MULTI、EXEC、DISCARD 和 WATCH 命令组成。多个命令可以用 MULTI 和 EXEC 包裹在一起,这样它们就可以作为一个单元一起原子地执行。DISCARD 命令可以撤消事务,并且 WATCH 命令可以在事务中监视一个或多个键,以便当这些键变化时中止事务。
下面是 Redis事务的基本语法:
MULTI
command1
command2
...
EXEC
或者
MULTI
command1
command2
...
DISCARD
下面是一个简单的例子,它向 Redis中保存了两个键和它们的值,并将它们添加到一个事务中。然后,使用 WATCH 指令监测第一个键,如果它的值发生了改变,就会中止事务。使用 EXEC 指令一起执行事务:
import redis
# 首先创建一个 Redis客户端实例
r = redis.Redis(host='localhost', port=6379, db=0)
# 执行一个事务
with r.pipeline() as pipe:
pipe.multi()
pipe.set('key1', 'value1')
pipe.set('key2', 'value2')
pipe.watch('key1')
pipe.set('key1', 'new value')
pipe.execute()
# 从 Redis中检索键和值
print(r.get('key1'))
print(r.get('key2'))
Markdown说明: