相关文章redis
Redis 的命令详解 - Key 篇
Redis 的命令详解 - String 篇
Redis 的命令详解 - List 篇
Redis 的命令详解 - SET 篇安全
跟 Hash 相关的命令一共有 15 种,这里只介绍经常使用的。想查看所有命令请参考官网post
说明 : 因为 reids 的 Hash 类型的格式以下,为了方便区分,里层的 key 我称呼为字段。
key :{key1 : value1,key2 : value2...}code
起始版本 : 2.0.0 时间复杂度 : 添加一个字段-值对为O(1),添加多个字段:值对为O(N),N为字段:值对的数量。get
从Redis 4.0.0开始,HSET 容许添加多个字段:值对。hash
HSET key field1 value1 [field2 value2 ...]
io
添加的字段:值对的对数class
起始版本 : 2.0.0
时间复杂度 : O(1)List
只有字段不存在时,才添加字段:值对。key不存在时,先建立一个 hash。语法
HSETNX key field value
起始版本 : 2.0.0
时间复杂度 : O(1)
HGET key field
起始版本 : 2.0.0
时间复杂度 : O(N),其中N是字段的数目
HMGET key field1 [field2 ...]
value 列表,不存在的 field 返回 nil,顺序与field顺序相同
起始版本 : 2.0.0
时间复杂度 : O(N),其中N是hash的大小。
HGETALL key
返回全部的字段:值对列表,key若是不存在,返回空列表
起始版本 : 2.0.0
时间复杂度 : O(N),其中N是hash的大小。
HKEYS key
返回全部的字段,key若是不存在则返回空列表
起始版本 : 2.0.0
时间复杂度 : O(N),其中N是hash的大小。
HVALS key
返回全部的字段的值,key若是不存在则返回空列表
起始版本 : 2.0.0
时间复杂度 : O(N),其中N是要删除的字段数。
HDEL key field1 [field2]
从 hash 中删除的字段个数,不包括指定的但不存在的字段。
Redis 版本 >= 2.4:接受多个field参数。低于2.4的Redis版本每次调用只能删除一个字段。
要在早期版本中以原子方式从哈希中删除多个字段,请使用MULTI
、 EXEC
起始版本 : 2.0.0
时间复杂度 : O(1)
HEXISTS key field
起始版本 : 2.0.0
时间复杂度 : O(1)
HLEN key
字段:值对的数量,当 key 不存在,返回0
起始版本 : 3.2.0
时间复杂度 : O(1)
HSTRLEN key field
字段对应值的长度,若是 field 或 key 不存在,返回0
起始版本 : 2.0.0
时间复杂度 : O(1)
HINCRBY key field 整数
HINCRBY
支持的整数的范围,限制为64位带符号整数。因为带符号,因此能够变相实现减法操做
起始版本 : 2.6.0
时间复杂度 : O(1)
HINCRBYFLOAT key field 数(能够是浮点数)
因为数能够带符号,因此能够变相实现减法操做