Hash(哈希)
Map集合,k-v这个值是一个map集合
# hash 的简单操作
#HSet
# HGET
#HMSET
#HMGET
#HGETALL
127.0.0.1:6379[2]> HSet myhash huang huangleshu
(integer) 1
127.0.0.1:6379[2]> HGET myhash huang
"huangleshu"
127.0.0.1:6379[2]> HMSET myhash le shu huang lelele # 批量插入
OK
127.0.0.1:6379[2]> HMGET myhash huang le
1) "lelele"
2) "shu"
127.0.0.1:6379[2]> HMGET myhash huang lelr
1) "lelele"
2) (nil)
127.0.0.1:6379[2]> HMGET myhash huang le # 批量获取
1) "lelele"
2) "shu"
127.0.0.1:6379[2]> HGETALL myhash # 查看全部的key-value
1) "huang"
2) "lelele"
3) "le"
4) "shu"
127.0.0.1:6379[2]> HGETALL myhash
1) "huang"
2) "lelele"
3) "le"
4) "shu"
5) "shu"
6) "shu1"
# HDEL
127.0.0.1:6379[2]> HDEL myhash shu # 删除指定的键值对
(integer) 1
127.0.0.1:6379[2]> HGETALL myhash
1) "huang"
2) "lelele"
3) "le"
4) "shu"
# HLEN 获取hash表的字段数量
127.0.0.1:6379[2]> HLEN myhash
(integer) 2
# 判断某个具体的key值是否存在
127.0.0.1:6379[2]> HEXISTS myhash huang
(integer) 1
127.0.0.1:6379[2]> HEXISTS myhash huang1
(integer) 0
# 只获取所有的key或者value
127.0.0.1:6379[2]> HKEYS myhash
1) "huang"
2) "le"
127.0.0.1:6379[2]> HVALS myhash
1) "lelele"
2) "shu"
# HINCRBY 自增 (自定义数值)------if 自定义的数值为负数,即相当于自减
127.0.0.1:6379[2]> HINCRBY myhash num1 1
(integer) 13
127.0.0.1:6379[2]> HINCRBY myhash num1 11
(integer) 24
127.0.0.1:6379[2]> HINCRBY myhash num1 -1
(integer) 23
127.0.0.1:6379[2]> HSETNX myhash num2 test # 判断是否存在,若不存在就创建
(integer) 1
127.0.0.1:6379[2]> HSETNX myhash num2 test1 # 若存在,就创建失败
(integer) 0
hash的应用
- 存储可变更的数据
- 更适合存储对象 String更适合存储字符串
PS.
- hset的操作若是key存在的话,可以覆盖原来的值