企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### 哈希命令 * * * * * [TOC] ###### HSET key field value 起始版本:2.0.0 时间复杂度:O(1) 设置 key 指定的哈希集中指定字段的值。 如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。 如果字段在哈希集中存在,它将被重写。 ##返回值 integer-reply:含义如下 1如果field是一个新的字段 0如果field原来在map里面已经存在 ##例子 ~~~ redis> HSET myhash field1 "Hello" (integer) 1 redis> HGET myhash field1 "Hello" ~~~ ###### HGET key field 起始版本:2.0.0 时间复杂度:O(1) 返回 key 指定的哈希集中该字段所关联的值 返回值 bulk-string-reply:该字段所关联的值。当字段不存在或者 key 不存在时返回nil。 例子 ~~~ redis> HSET myhash field1 "foo" (integer) 1 redis> HGET myhash field1 "foo" redis> HGET myhash field2 (nil) ~~~ ###### HGETALL key 起始版本:2.0.0 时间复杂度:O(N) where N is the size of the hash. 返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍 返回值 array-reply:哈希集中字段和值的列表。当 key 指定的哈希集不存在时返回空列表。 例子 ~~~ redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HGETALL myhash 1) "field1" 2) "Hello" 3) "field2" 4) "World" ~~~ ###### HDEL key field [field ...] 起始版本:2.0.0 时间复杂度:O(N) N是被删除的字段数量。 从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。 如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。 返回值 integer-reply: 返回从哈希集中成功移除的域的数量,不包括指出但不存在的那些域 历史 在 2.4及以上版本中 :可接受多个域作为参数。小于 2.4版本 的 Redis 每次调用只能移除一个域 要在早期版本中以原子方式从哈希集中移除多个域,可用 MULTI/EXEC块。 例子 ~~~ redis> HSET myhash field1 "foo" (integer) 1 redis> HDEL myhash field1 (integer) 1 redis> HDEL myhash field2 (integer) 0 ~~~ ###### HEXISTS key field 起始版本:2.0.0 时间复杂度:O(1) 返回hash里面field是否存在 返回值 integer-reply, 含义如下: 1 hash里面包含该field。 0 hash里面不包含该field或者key不存在。 例子 ~~~ redis> HSET myhash field1 "foo" (integer) 1 redis> HEXISTS myhash field1 (integer) 1 redis> HEXISTS myhash field2 (integer) 0 ~~~ ###### HKEYS key 起始版本:2.0.0 时间复杂度:O(N) where N is the size of the hash. 返回 key 指定的哈希集中所有字段的名字。 返回值 array-reply:哈希集中的字段列表,当 key 指定的哈希集不存在时返回空列表。 例子 ~~~ redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HKEYS myhash 1) "field1" 2) "field2" ~~~ ###### HLEN key 起始版本:2.0.0 时间复杂度:O(1) 返回 key 指定的哈希集包含的字段的数量。 返回值 integer-reply: 哈希集中字段的数量,当 key 指定的哈希集不存在时返回 0 例子 ~~~ redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HLEN myhash (integer) 2 ~~~ ###### HMSET key field value [field value ...] 起始版本:2.0.0 时间复杂度:O(N) where N is the number of fields being set. 设置 key 指定的哈希集中指定字段的值。该命令将重写所有在哈希集中存在的字段。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联 ##返回值 simple-string-reply ##例子 ~~~ redis> HMSET myhash field1 "Hello" field2 "World" OK redis> HGET myhash field1 "Hello" redis> HGET myhash field2 "World" ~~~ ###### HMGET key field [field ...] 起始版本:2.0.0 时间复杂度:O(N) where N is the number of fields being requested. 返回 key 指定的哈希集中指定字段的值。 对于哈希集中不存在的每个字段,返回 nil 值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key 执行 HMGET 将返回一个只含有 nil 值的列表 返回值 array-reply:含有给定字段及其值的列表,并保持与请求相同的顺序。 例子 ~~~ redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HMGET myhash field1 field2 nofield 1) "Hello" 2) "World" 3) (nil) ~~~ 综合用例: ~~~ redis-cli.exe -h 103.196.126.33 -p 6379 auth cpRedis@2018 select 5 HGETALL 88002001 ~~~ * * * * * http://www.redis.cn/commands/hgetall.html https://redis.io/commands/hgetall