小编典典

是否可以检查Redis设置键是否存在,如果不存在,请设置它,如果确实存在然后退出,则全部作为事务处理

redis

我想将其作为事务来执行,因为此键将用作以后操作的“锁”。如果发生这种情况怎么办:

  1. 检查它是否存在
  2. 确定它不存在
  3. 在我确定它不存在时,其他人检查它是否存在
  4. 设置它,因为它不存在,然后执行我的操作
  5. 第二人称同时设置它,并在不应允许的情况下执行操作。

阅读 772

收藏
2020-06-20

共1个答案

小编典典

好吧,如果您想了解Redis交易的性质:http
://redis.io/topics/transactions

特别是,这部分内容:

“事务中的所有命令都被序列化并顺序执行。在Redis事务的执行过程中永远不会发生另一个客户端发出的请求。这保证了这些命令是作为单个隔离操作执行的。 ”

如果您希望仅在不存在时才添加的单个命令,则http://redis.io/commands/setnx是SETNX的文档链接,它确实做到了这一点。

对于事务,您首先调用MULTI,然后发送所需的任何命令,然后调用EXEC以一系列命令开始。这保证是原子的,在完成序列之前不能执行其他命令。

高温超导

2020-06-20