Hash(哈希)

map集合,key-map。这个时候值是一个map集合。本质和String类型没有太大区别,还是一个简单的key-value。

127.0.0.1:6379> hset myhash k1 v1  # 设置一个具体的key-value
(integer) 1
127.0.0.1:6379> hget myhash k1  #获取一个字段值
"v1"
127.0.0.1:6379> hmset myhash k2 v2 k3 v3 #设置多个key-value
OK
127.0.0.1:6379> hmget myhash k1 k2 k3  #获取多个字段值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> hgetall myhash  #获取所有的数据
1) "k1"
2) "v1"
3) "k2"
4) "v2"
5) "k3"
6) "v3"
127.0.0.1:6379> hlen myhash  #获取hash表字段的数量
(integer) 3
127.0.0.1:6379> hexists myhash k1 #判断某个字段在hash表中是否存在
(integer) 1
127.0.0.1:6379> hexists myhash k4
(integer) 0
127.0.0.1:6379> hdel myhash k2 k1  #删除hash表中特定的字段
(integer) 2
127.0.0.1:6379> hgetall myhash
1) "k3"
2) "v3"
127.0.0.1:6379> hkeys myhash #只获得所有field
1) "k3"
127.0.0.1:6379> hvals myhash #只获得所有value
1) "v3"
127.0.0.1:6379> hset myhash age 10
(integer) 1
127.0.0.1:6379> hincrby myhash age 2  #指定增量
(integer) 12
127.0.0.1:6379> hget myhash age
"12"
127.0.0.1:6379> hincrby myhash age -3 
(integer) 9
127.0.0.1:6379> hget myhash age
"9"
127.0.0.1:6379> hsetnx hash name tom  #如果不存在,则可以设置
(integer) 1
127.0.0.1:6379> hsetnx hash name jerry  #如果存在,则报错
(integer) 0

hash变更的数据user name age,尤其是用户信息之类的,经常变动的信息。hash更适合于对象的存储,String更适合字符串存储。

 posted on 2020-11-19 20:45  会飞的金鱼  阅读(71)  评论(0)    收藏  举报