HASH(散列):hash 是一个 Sring 类型的 field 和 value 的映射表,它的添加删除操作是 O(1)(平均)。
hash特别适合用于存储对象,相较于对象的每个字段都存成 String 类型,将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象。
每一个Hash可以存储 4294967295 个键值对
应用场景:存储、读取、修改用户属性(name、age等)。
hset、hget 设置单个字段的
127.0.0.1:6379> hset stu1 name zth
(integer) 1
127.0.0.1:6379> hset stu1 age 18
(integer) 1
127.0.0.1:6379> hget stu1 name
"zth"
127.0.0.1:6379> hget stu1 age
"18"
hmset、hmget 设置多个字段
127.0.0.1:6379> hmset stu2 name zhangsan age 20
OK
127.0.0.1:6379> hmget stu2 name age
1) "zhangsan"
2) "20"
hgetall 获取所有字段
127.0.0.1:6379> hgetall stu2
1) "name"
2) "zhangsan"
3) "age"
4) "20"
hdel 删除属性
可以一次删除一个或者多个
127.0.0.1:6379> hdel stu2 name age
(integer) 2
127.0.0.1:6379> hgetall stu2
(empty list or set)
hincrby 增加数字
127.0.0.1:6379> hget stu1 age
"18"
127.0.0.1:6379> hincrby stu1 age 4
(integer) 22
hexists 判断字段是否存在
1表示存在 0表示不存在
127.0.0.1:6379> hexists stu1 age
(integer) 1
127.0.0.1:6379> hexists stu1 sex
(integer) 0
hlen 获取 hash 属性个数
127.0.0.1:6379> hlen stu1
(integer) 2
127.0.0.1:6379> hlen stu3
(integer) 0
hkeys 获取所有属性名称
127.0.0.1:6379> hkeys stu1
1) "name"
2) "age"
127.0.0.1:6379> hkeys stu3
(empty list or set)
hvals 获取所有属性值
127.0.0.1:6379> hvals stu1
1) "zth"
2) "22"
127.0.0.1:6379> hvals stu3
(empty list or set)