Map集合 , key-map 这个值是一个map集合

hash本质和String类型没有多大的差别还是一个简单的集合

127.0.0.1:6379> hset myhash field1 luoyufeng # set一个具体的 key-value
(integer) 1
127.0.0.1:6379> hget myhash field1 # 获取一个字段中
"luoyufeng"
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多个 key-value
OK
127.0.0.1:6379> hmget myhash field1 field2 # 获取多个字段的值
1) "hello"
2) "world"
127.0.0.1:6379> HGETALL myhash # 获取hash中全部的数据
1) "field1"
2) "hello"
3) "field2"
4) "world"

删除hash指定key字段,对应的value值也就消失了

127.0.0.1:6379> hdel myhash field1
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"

获取hash中内容的长度

127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "field"
4) "hello"
127.0.0.1:6379> hlen myhash # 获取hash表的字段数量
(integer) 2

判断某一个字段时候存在

127.0.0.1:6379> HEXISTS myhash field1 # 判断hash中指定字段是否存在
(integer) 0
127.0.0.1:6379> HEXISTS myhash field
(integer) 1

只获得所有的field字段

只获得所有的value

127.0.0.1:6379> hkeys myhash
1) "field2"
2) "field"
127.0.0.1:6379> hvals myhash
1) "world"
2) "hello"
127.0.0.1:6379> 

指定值自增或是自减

127.0.0.1:6379> hset myhash field3 5
(integer) 1
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

Hash的应用

hash变更的数据(尤其用户信息之类的,经常变动的信息!hash更适合对象的存储,String更加适合字符串的存储)

127.0.0.1:6379> hset user:1 name luoyufeng
(integer) 1
127.0.0.1:6379> hget user:1 name
"luoyufeng"
最后修改:2021 年 03 月 07 日 12 : 13 PM