redis hset 和hsetnx 的区别是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 。

参考技术A 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 已经存在,不作任何操作

本回答被提问者采纳

以上是关于redis hset 和hsetnx 的区别是啥的主要内容,如果未能解决你的问题,请参考以下文章

Redis Hash和List常用命令

redis --- Hash类型的使用

redis的hset和set的区别

redis 基本类型

Redis hash数据类型

Redis - hash类型操作