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
浙公网安备 33010602011771号