hset

向哈希key中添加字段field和字段映射的值value

语法:hset <key> <field> <value>

1
2
3
4
5
6
7
8
9
# 向哈希user中添加一个字段name和字段对应的值ikun
127.0.0.1:6379> hset user name ikun
(integer) 1
# 向哈希user中添加一个字段age和字段对应的值18
127.0.0.1:6379> hset user age 18
(integer) 1
# 向哈希user中添加一个字段hobby和字段对应的值rap
127.0.0.1:6379> hset user hobby rap
(integer) 1

hget

从哈希key中取出一个字段field对应的值value

1
2
3
4
5
6
7
8
9
# 取出user中的name字段对应的值
127.0.0.1:6379> hget user name
"ikun"
# 取出user中的age字段对应的值
127.0.0.1:6379> hget user age
"18"
# 取出user中的hobby字段对应的值
127.0.0.1:6379> hget user hobby
"rap"

hmset

批量设置哈希key的字段和字段值

语法:hmset <key> <field1> <value1> <field2> <value2> <field3> <value3>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 先删除哈希user
127.0.0.1:6379> del user
(integer) 1
# 以下三步为同时操作
# 向哈希user中添加一个字段name和字段对应的值ikun
# 向哈希user中添加一个字段age和字段对应的值18
# 向哈希user中添加一个字段hobby和字段对应的值rap
127.0.0.1:6379> hmset user name ikun age 18 hobby rap
OK
# 取出user中的name字段对应的值
127.0.0.1:6379> hget user name
"ikun"
# 取出user中的age字段对应的值
127.0.0.1:6379> hget user age
"18"
# 取出user中的hobby字段对应的值
127.0.0.1:6379> hget user hobby
"rap"

hexists

判断哈希key中是否存在某键值对field-value

1
2
3
4
5
6
# 判断user中是否有name字段
127.0.0.1:6379> hexists user name
(integer) 1
# 判断user中是否有sex字段
127.0.0.1:6379> hexists user sex
(integer) 0

hkeys

列出该hash集合中所有field

1
2
3
4
5
# 列出user中所有field
127.0.0.1:6379> hkeys user
1) "name"
2) "age"
3) "hobby"

hvals

列出hash集合中所有的value

1
2
3
4
5
6
# 列出user中所有value
127.0.0.1:6379> hvals user
1) "ikun"
2) "18"
3) "rap"

hincrby

将哈希表key中的域field的值增加increment

注:field对应的值必须为数字时才可以增加

语法:hincrby <key> <field> <incrment>

1
2
3
4
5
6
7
8
9
# 将user的age增加1
127.0.0.1:6379> hincrby user age 1
(integer) 19
# 将user的age增加10
127.0.0.1:6379> hincrby user age 10
(integer) 29
# 视图将user的name增加1,报错
127.0.0.1:6379> hincrby user name 1
(error) ERR hash value is not an integer

hsetnx

将哈希表key中的域对象field的值设置为value,当且仅当域对象field不存在时可成功

语法:hsetnx <key> <field> <value>

1
2
3
4
5
6
# 为user新增weight,值为60kg
127.0.0.1:6379> hsetnx user weight 60kg
(integer) 1
# 试图新增user的age属性,age此前已经存在,结果不成功
127.0.0.1:6379> hsetnx user age 18
(integer) 0