目录
目标
列举redis中与hash相关的指令,包括作用、使用时需要注意的地方等。基本都是key-field维度所有指令。
HDEL
HDEL key field [field]
O(N) N:field个数
在key对应的hash中,删除field
返回0或真正删除field的个数
HEXIST
HEXIST key field
O(1)
在key对应的hash中是否存在field
返回1表示存在或0表示不存在
HGET
HGET key field
O(1)
在key对应的hash中,返回field对应的val
返回数据或NULL
HGETALL
HGETALL key
O(N) N:hash中field的数量
key对应的hash,返回所有field和对应val
返回数据
HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"
HINCRBY
HINCRBY key field increment
O(1)
key对应的hash,field的val增加increment。如果key不存在,则创建key和对应hash。field不存在,则先创建val为0的field,然后增加increment。
increment参数,limit 64 bit整数,可正可负
返回增加后的val
HINCRBYFLOAT
HINCRBYFLOAT key field increment
O(1)
作用同HINCRBY
要求val和参数必须可解析为浮点数,负责error
复制和AOF时,均使用HSET替换,所以浮点数数据实现不是数据不一致的原因。
HKEYs key
O(N) N:hash中field的数量
数组形式返回hash中所有field name
HLEN key
O(1)
返回hash中field的数量
HMGET
HMGET key field [field ...]
O(N) N:请求的field数量
数组形式返回请求的field的val,field不存在返回null,key不存在返回null list
HMSET
HMSET key field value [field value ...]
O(N) N:请求的field数量
设置hash中field的val,如果key不存在,则会创建hash。
返回OK
HSCAN
HSCAN key cursor [MATCH pattern] [COUNT count]
每次调用O(1),每次遍历O(N)
递增式迭代key对应hash的field和val
HSET
HSET key field value
O(1)
设置hash中field的val,如果key不存在,则新建hash;如果field不存在,则新建field并赋值;否则更新val。
返回1:field是新建的
返回0:更新field的val
HSETNX
HSETNX key field value
O(1)
仅当field不存在时,设置field的val。如果key不存在,则新建hash;如果filed已存在,则不做任何处理。
返回1:field是新建的
返回0:field存在且不做任何动作
HSTRLEN
HSTRLEN key field
O(1)
返回field对应val的字符串长度,如果key或field不存在,则返回0
HVALS key
O(N) N:field的数量
数组形式返回所有val,如果key不存在则返回empty list