HSETNX:只在字段不存在的情况下为它设置值
HSETNX 命令的作用和 HSET 命令的作用非常相似,它们之间的区别在于,HSETNX 命令只会在指定字段不存在的情况下执行设置操作:
HSETNX hash field value
HSETNX 命令在字段不存在并且成功为它设置值时返回 1,在字段已经存在并导致设置操作未能成功执行时返回 0。
举个例子,对于图 3-5 所示的 article::10086 散列来说,执行以下 HSETNX 命令将不会对散列产生任何影响,因为 HSETNX 命令想要设置的 title 字段已经存在:
redis> HSETNX article::10086 title "Redis Performance Test"
(integer) 0 -- 设置失败

Figure 1. 图3-5 HSETNX 命令执行之前的 article::10086 散列
相反,如果我们使用 HSETNX 命令去对尚未存在的 view_count 字段进行设置,那么这个命令将会顺利执行,并将 view_count 字段的值设置为 100:
redis> HSETNX article::10086 view_count 100
(integer) 1 -- 设置成功
图 3-6 展示了 HSETNX 命令成功执行之后的 article::10086 散列。

Figure 2. 图3-6 HSETNX 命令执行之后的 article::10086 散列