本文内容为 http://www.redis.io/commands/hsetnx 的翻译、注解、例子扩充及其它修改。感谢 Redis 作者 Antirez 为开源社区作出的贡献,本文保证最新、最准、最全以表示对其的敬意。欢迎留言纠错、提示更新或支持。
HSETNX key field value

将存储在键 key 中的哈希(Hash)对象中的字段 field 的值设置为 value仅当字段 field 不存在时进行该操作。

Sets field in the hash stored at key to value, only if field does not yet exist.

如果键 key 不存在,一个保存了哈希对象的新建将被创建。如果字段 field 已经存在,该操作不会产生任何影响。

If key does not exist, a new key holding a hash is created. If field already exists, this operation has no effect.
    • 如果 field 是一个新字段,且值被设置(Set),则返回 1
    • 如果 field 已经存在,将不进行任何操作,且返回 0
    Integer reply, specifically:
    • 1 if field is a new field in the hash and value was set.
    • 0 if field already exists in the hash and no operation was performed.
  • redis> HSETNX myhash field "Hello"
    (integer) 1
    redis> HSETNX myhash field "World"
    (integer) 0
    redis> HGET myhash field
    "Hello"
  • 版本支持

    2.0.0+

    时间复杂度(Time complexity)

    O(1)