redis的hset和set的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis的hset和set的区别相关的知识,希望对你有一定的参考价值。

参考技术A hexists只用来判断是否存在参数所指定的hash字段,只可以带一个参数,返回值只有1(存在)和0(不存在)两种情况。redis> HSET myhash field1 "foo"(integer) 1redis> HEXISTS myhash field1(integer) 1redis> HEXISTS myhash field2(integer) 0redis> exists用来判断key是否存在,只有1组参数时用法和hexists一样,时间复杂度也一样,所以效率没区别。Redis3.0.3之后支持多组参数,返回存在的key的数量。redis> SET key1 "Hello"OKredis> EXISTS key1(integer) 1redis> EXISTS nosuchkey(integer) 0redis> SET key2 "World"OKredis> EXISTS key1 key2 nosuchkey(integer) 2redis>本回答被提问者采纳

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和set的区别的主要内容,如果未能解决你的问题,请参考以下文章

redis hset 和hsetnx 的区别是啥

redis 排序 及 取出Hset中的多个数据(sort get 命令实践)

Redis:hash/hset/hget 命令源码解析

redis中hset能否设置有效时间

redis和mongodb的区别

redis和memcached的区别