哈希就类似于java中的map结构,只不过给这个map指定了一个key,因此一个key中可以存储多个键值对
1.hset
hset user name wml
(integer) 1
结构:key field value
2.hget
127.0.0.1:6379> hget user name
"wml"
hget +key +field
3.Hmset
一次设置多个字段
127.0.0.1:6379> hmset user name wml age 18 address js
OK
语法:
hmset key field1 value1 field2 value2 field3 values3 …
4.hmget
一次获取某个key的多个字段值
127.0.0.1:6379> hmget user name age address
1) "wml"
2) "18"
3) "js"
hmget +field1 +filed2+filed3…
如果不存在显示nil
5.hdel
删除字段。可以一次删除多个field
127.0.0.1:6379> hdel user name age
(integer) 2
127.0.0.1:6379> hmget user age name address
1) (nil)
2) (nil)
3) "js"
6.hsetnx
同setnx原理一样,filed存在,什么都不做,field不存在,则设置值
127.0.0.1:6379> hmget user name age address
1) (nil)
2) (nil)
3) "js"
127.0.0.1:6379> hsetnx user age 18
(integer) 1
127.0.0.1:6379> hsetnx user name wml
(integer) 1
127.0.0.1:6379> hmget user name age address
1) "wml"
2) "18"
3) "js"
7.hvals
127.0.0.1:6379> hvals user
1) "js"
2) "18"
3) "wml"
返回key中所有的值
8.hkeys
返回key中所有的field
127.0.0.1:6379> hkeys user
1) "address"
2) "age"
3) "name"
9.hGetAll
127.0.0.1:6379> hgetall user
1) "address"
2) "js"
3) "age"
4) "18"
5) "name"
6) "wml"
获得key中所有的键值对
10.hexists
127.0.0.1:6379> hexists user age
(integer) 1
127.0.0.1:6379> hexists user haha
(integer) 0
如果key中存在目标field,则返回1,否则返回0
11.HIncrBy
同incrby,目标filed不存在,则创建新的field然后增长指定值,如果存在,则加上指定值。
hincrby key filed 数字
127.0.0.1:6379> hincrby user age 10
(integer) 28
127.0.0.1:6379> hget user age
"28"
12.hlen
127.0.0.1:6379> hlen user
(integer) 3
返回key中的长度,即键值对数量