Redis Hash
# Redis Hash
# HSET key field value
描述
设置 key 指定的哈希集中指定字段的值。
如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。
如果字段在哈希集中存在,它将被重写。
返回值
- 1如果field是一个新的字段
- 0如果field原来在map里面已经存在
例子
127.0.0.1:6379> HSET user name zhangsan
(integer) 1
127.0.0.1:6379> HGET user name
"zhangsan"
2
3
4
# HSETNX key field value
描述
只在 key
指定的哈希集中不存在指定的字段时,设置字段的值。如果 key
指定的哈希集不存在,会创建一个新的哈希集并与 key
关联。如果字段已存在,该操作无效果
返回值
- 1:如果字段是个新的字段,并成功赋值
- 0:如果哈希集中已存在该字段,没有操作被执行
例子
127.0.0.1:6379> HSETNX user name zhangsan
(integer) 1
127.0.0.1:6379> HSETNX user name lisi
(integer) 0
2
3
4
# HGET key field
描述
返回 key 指定的哈希集中该字段所关联的值
返回值
该字段所关联的值。当字段不存在或者 key 不存在时返回nil。
例子
127.0.0.1:6379> HGET user name
"zhangsan"
2
# HMGET key field [field ...]
描述
返回 key 指定的哈希集中该字段所关联的值
对于哈希集中不存在的每个字段,返回 nil
值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key
执行 HMGET (opens new window) 将返回一个只含有 nil
值的列表
返回值
含有给定字段及其值的列表,并保持与请求相同的顺序
例子
127.0.0.1:6379> HMGET user name age
1) "zhangsan"
2) "18"
2
3
# HGETALL key
描述
返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍
返回值
哈希集中字段和值的列表。当 key 指定的哈希集不存在时返回空列表。
例子
127.0.0.1:6379> HGETALL user
1) "name"
2) "zhangsan"
3) "age"
4) "18"
2
3
4
5
# HLEN key
描述
返回 key
指定的哈希集包含的字段的数量。
返回值
哈希集中字段的数量,当 key
指定的哈希集不存在时返回 0
例子
127.0.0.1:6379> HLEN user
(integer) 2
2
# HSTRLEN key field
描述
返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
返回值
返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.
例子
127.0.0.1:6379> HSTRLEN user name
(integer) 8
2
# HKEYS key
描述
返回 key 指定的哈希集中所有字段的名字。
返回值
哈希集中的字段列表,当 key 指定的哈希集不存在时返回空列表。
例子
127.0.0.1:6379> HKEYS user
1) "name"
2) "age"
2
3
# HVALS key
描述
返回 key 指定的哈希集中所有字段的值。
返回值
希集中的值的列表,当 key 指定的哈希集不存在时返回空列表。
例子
127.0.0.1:6379> HVALS user
1) "zhangsan"
2) "18"
2
3
# HEXISTS key field
描述
返回hash里面field是否存在
返回值
- 1 hash里面包含该field。
- 0 hash里面不包含该field或者key不存在。
例子
127.0.0.1:6379> HEXISTS user name
(integer) 1
127.0.0.1:6379> HEXISTS user address
(integer) 0
2
3
4
# HDEL key field [field ...]
描述
从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。
如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。
返回值
返回从哈希集中成功移除的域的数量,不包括指出但不存在的那些域
例子
127.0.0.1:6379> HDEL user age address
(integer) 1
127.0.0.1:6379> HKEYS user
1) "name"
2
3
4
# HINCRBY key field increment
描述
增加 key
指定的哈希集中指定字段的数值。如果 key
不存在,会创建一个新的哈希集并与 key
关联。如果字段不存在,则字段的值在该操作执行前被设置为 0
HINCRBY
支持的值的范围限定在 64位 有符号整数
返回值
增值操作执行后的该字段的值
例子
127.0.0.1:6379> HINCRBY user age 2
(integer) 20
2
# HINCRBYFLOAT key field increment
描述
为指定key
的hash的field
字段值执行float类型的increment
加。如果field
不存在,则在执行该操作前设置为0.如果出现下列情况之一,则返回错误:
返回值
field
执行increment
加后的值
例子
127.0.0.1:6379> HINCRBYFLOAT user age 2.5
"22.5"
2