hash(哈希)
map集合,key-map,本质和string没有太大区别,还是key-value
应用场景:经常变更的数据,适用对象存储
hset key field value 设置一个key-value
hget key field 获取一个字段值
hmset key field value ··· 设置多个key-value
hmget key field ··· 获取多个字段值
hgetall key 获取全部数据
hdel key field 删除指定key和对应的value
127.0.0.1:6379> hset myhash field1 hello
(integer) 1
127.0.0.1:6379> hget myhash field1
"hello"
127.0.0.1:6379> hmset myhash field1 hello1 field2 hello2
OK
127.0.0.1:6379> hmget myhash field1 field2
1) "hello1"
2) "hello2"
127.0.0.1:6379> hgetall myhash
1) "field1"
2) "hello1"
3) "field2"
4) "hello2"
127.0.0.1:6379> hdel myhash field1
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "hello2"
hlen key 获取hash表的字段数量
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "hello2"
127.0.0.1:6379> hlen myhash
(integer) 1
hexists key field 判断hash中指定字段是否存在
127.0.0.1:6379> hexists myhash field1
(integer) 0
127.0.0.1:6379> hexists myhash field2
(integer) 1
hkeys key 获取hash表中所有kay
hvals key 获取hash表中所有value
127.0.0.1:6379> hkeys myhash
1) "field2"
127.0.0.1:6379> hvals myhash
1) "hello2"
hincrby key field incrment 指定增量
hsetnx key field value 存在设置成功
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "hello2"
3) "field3"
4) "5"
127.0.0.1:6379> hincrby myhash field3 1
(integer) 6
127.0.0.1:6379> hincrby myhash field3 -1
(integer) 5
127.0.0.1:6379> hsetnx myhash field4 hello
(integer) 1
127.0.0.1:6379> hsetnx myhash field4 world
(integer) 0