当前位置: 首页 > 面试题库 >

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

殳智志
2023-03-14
问题内容

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

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

问题答案:

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

特别是,这部分内容:

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

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

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

高温超导



 类似资料:
  • 问题内容: 我是NodeJS的新手,也许没有事件系统应该如何工作。找不到错误。请指教。我需要一个简单的任务- 检查标签,如果它不存在,则设置新密钥和有关该标签的信息。问题是-然后我第一次运行该脚本,它始终返回“键不存在”。检查redisdb键- 它会创建很多标签这是我的代码 这是另一个例子 输出: 看起来nodejs仅在该“设置”命令之后执行所有“获取”命令。所以…我了解,这全都归因于异步操作。但

  • 本文向大家介绍检查PHP cookie是否存在,以及是否未设置其值,包括了检查PHP cookie是否存在,以及是否未设置其值的使用技巧和注意事项,需要的朋友参考一下 根据PHP手册,找不到cookie。 手册中的参考:“一旦设置了cookie,就可以在下一页加载时使用$_COOKIE或$HTTP_COOKIE_VARS数组来访问它们。” Cookie之所以成为浏览器的响应头,是因为浏览器需要将C

  • 问题内容: 使用Sql Server2012。我有一个存储过程,它的一部分检查用户名是否在表中。如果是,则返回1,否则返回2。这是我的代码: 但是,我一直收到以下错误: ‘1’附近的语法不正确。 使用IF EXIST甚至可以做到吗? 问候 问题答案: 如果您想这样做,那么这就是您要遵循的语法。 您不一定严格要求这些语句,但是最好是从一开始就养成这种习惯。

  • rank ▲ ✰ vote url 17 776 241 907 url 检查一个文件夹是否存在,如果不存在就创建它 有什么好的方法吗?这个是我想的: filename = "/my/directory/filename.txt" dir = os.path.dirname(filename) try: os.stat(dir) except: os.mkdir(dir) f

  • 问题内容: 因此,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。 像这样: 有时,还会有一个额外的字段,例如: 我想检查名为“ club”的字段是否存在,以便在解析时不会得到 org.json.JSONException:club的值 问题答案: JSONObject类具有一个名为“ has”的方法: http://developer.android.com/reference/o

  • 我很难让这东西工作。基本上,一旦我单击用户配置的删除按钮,这个函数就会被调用。用户可以有多个配置。发生的情况是,一旦我删除了一个配置,它会寻找另一个配置,如果找到了,它会将其设置为当前配置文件。第一位工作正常,但如果返回什么,而不是输入它返回我一个错误... 代码: 错误: 请记住,我对Laravel和整个MVC环境非常陌生。