HSET如果密钥存在

Viv*_*oel 4 redis

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

lui*_*uin 8

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

WATCH hkey
isKeyExists = EXISTS hkey
if isKeyExists
  MULTI
  HSET hkey field value
  EXEC
else
  UNWATCH
Run Code Online (Sandbox Code Playgroud)

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

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

  • 如果'WATCH'命令后hkey的内容改变,'HSET'命令将无法执行。这不是“如果键存在则为 HSET”。 (2认同)