redis hset 和hsetnx 的区别是什么
命令参数:
HSET key field value
HSETNX key field value作用区别:
HSET 将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。如果域 field 已经存在于哈希表中,旧值将被覆盖。
HSETNX 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。若域 field 已经存在,该操作无效。如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。
返回值区别:
HSET:如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。如果哈希表中域 field 已经存在且旧值已被新值覆盖,返回 0 。
HSETNX:设置成功,返回 1 。如果给定域已经存在且没有操作被执行,返回 0 。
hset hash_key field_name field_value
设置 hash 类型中的属性(字段)值
返回1,表示 新的属性 field_name <=> field_value 被添加到 hash_key 的hash中;
返回0,表示 旧的属性 field_name 已经存在,且值被更新为 field_value。
hsetnx hash_key field_name field_value
返回1,表示 新的属性 field_name <=> field_value 被添加到 hash_key 的hash中;
返回0,表示 属性 field_name 已经存在,不作任何操作