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

HSET(如果存在密钥)

陈泰宁
2023-03-14
问题内容

仅当密钥存在时,Redis不支持HSET。
http://redis.io/commands#hash
在客户端中实现该功能的最佳方法是什么?


问题答案:

使用事务在客户端实现它很容易。

WATCH hkey
isKeyExists = EXISTS hkey
if isKeyExists
  MULTI
  HSET hkey field value
  EXEC
else
  UNWATCH

在WATCH之后删除hkey时,事务将失败。

您还可以使用Redis 2.6中引入的脚本。



 类似资料:
  • HSET key field value 将哈希表 key 中的域 field 的值设为 value 。 如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。 如果域 field 已经存在于哈希表中,旧值将被覆盖。 可用版本: >= 2.0.0 时间复杂度: O(1) 返回值: 如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。 如果哈希表中域 field 已经存

  • 问题内容: 我对Redis中的HSET有疑问。据我所知,redis是一个键值数据库。这意味着所有事物都存储为键值,例如,我们没有表。我想在redis中保存一些内容,所以我决定使用Hashmap。由于HMSET已过时,我们应该改用HSET,我应该如何在hset中存储许多属性作为值和id作为键?你知道我想保存这样的东西: 但是,如果我要保存很多字段,我应该为每个字段写这一行?例如 : 如在HSET中,

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

  • HSET key field value 将哈希表 key 中的域 field 的值设为 value 。 如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。 如果域 field 已经存在于哈希表中,旧值将被覆盖。 可用版本: >= 2.0.0 时间复杂度: O(1) 返回值: 如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。如果哈希表中域 field 已经存在

  • 问题内容: 我有下表: 如果给定的ID不存在,我想插入具有默认Val的ID。但是,如果它已经存在,我想增加Val的值。 我有以下代码: 并且它可以工作,但是我想用一个SQL语句来完成。我可以吗? 编辑 : 从@ Xikinho90的答案,我的最终代码是 问题答案: 您可以使用插入或替换。 我认为这可以解决问题 您只需要用输入的ID替换数字 谢谢奇科

  • 问题内容: 如果两个值都不存在,如何推入数组?这是我的数组: 如果我尝试使用或再次将其推入数组,我什么都不希望发生…但是如果这两个都不存在,那么我希望它 我怎样才能做到这一点? 问题答案: 您可以使用自定义方法扩展Array原型: