Hash(哈希)
Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的
key-vlaue!
set myhash field kuangshen
##########################################################################
127.0.0.1:6379> hset myhash field1 kuangshen # set一个具体 key-vlaue (integer) 1
127.0.0.1:6379> hget myhash field1 # 获取一个字段值
"kuangshen"
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多个 key-vlaue OK
127.0.0.1:6379> hmget myhash field1 field2 # 获取多个字段值
1)"hello"
2)"world"
127.0.0.1:6379> hgetall myhash # 获取全部的数据,
1)"field1"
2)"hello"
3)"field2"
4)"world"
127.0.0.1:6379> hdel myhash field1 # 删除hash指定key字段!对应的value值也就消失了!
(integer) 1
127.0.0.1:6379> hgetall myhash
1)"field2"
2)"world" ########################################################################## hlen
127.0.0.1:6379> hmset myhash field1 hello field2 world OK
127.0.0.1:6379> HGETALL myhash
1)"field2"
2)"world"
3)"field1"
4)"hello"
127.0.0.1:6379> hlen myhash # 获取hash表的字段数量!
(integer) 2
##########################################################################
127.0.0.1:6379> HEXISTS myhash field1 # 判断hash中指定字段是否存在!
(integer) 1
127.0.0.1:6379> HEXISTS myhash field3 (integer) 0
##########################################################################
# 只获得所有field
# 只获得所有value
127.0.0.1:6379> hkeys myhash # 只获得所有field
1)"field2"
2)"field1"
127.0.0.1:6379> hvals myhash # 只获得所有value
1)"world"
2)"hello" ########################################################################## incr decr
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变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息! hash 更适合于对象的存储,String更加适合字符串存储!