Redis五大数据类型之 Hash(哈希)
Map集合,key-Map集合,这时候这个值是map集合!本质和String类型没有太大区别,还是一个简单的key-value!
set myhash field hudu
127.0.0.1:6379[1]> HSET myhash field1 hudu # set一个具体的key-value
(integer) 1
127.0.0.1:6379[1]> HGET myhash field1
"hudu"
127.0.0.1:6379[1]> HMSET myhash field1 hello field2 world # set多个key-value
OK
127.0.0.1:6379[1]> HMGET myhash field1 field2 # 获取多个字段值
1) "hello"
2) "world"
127.0.0.1:6379[1]> HGETALL myhash # 获取全部数据
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379[1]> HDEL myhash field1 # 删除hash指定的key字段,对应的value值也就消失了
(integer) 1
127.0.0.1:6379[1]> HGETALL myhash
1) "field2"
2) "world"
127.0.0.1:6379[1]> hmset myhash field1 hello field2 world
OK
127.0.0.1:6379[1]> hgetall myhash
1) "field2"
2) "world"
3) "field1"
4) "hello"
127.0.0.1:6379[1]> HLEN myhash # 获得hash表的字段数量
(integer) 2
127.0.0.1:6379[1]> HEXISTS myhash field1 # 判断hash中指定的字段是否存在
(integer) 1
127.0.0.1:6379[1]> HEXISTS myhash field3
(integer) 0
127.0.0.1:6379[1]> HKEYS myhash # 获取所有的key
1) "field2"
2) "field1"
127.0.0.1:6379[1]> HVALS myhash # 获取所有的value
1) "world"
2) "hello"
127.0.0.1:6379[1]> HSET myhash field3 5
(integer) 1
127.0.0.1:6379[1]> HINCRBY myhash field3 1 # 指定增量
(integer) 6
127.0.0.1:6379[1]> HGET myhash field3
"6"
127.0.0.1:6379[1]> HINCRBY myhash field -1
(integer) -1
127.0.0.1:6379[1]> HGET myhash field
"-1"
127.0.0.1:6379[1]> HSETNX myhash field4 hello # 不过不存在则可以设置
(integer) 1
127.0.0.1:6379[1]> HSETNX myhash field4 world
(integer) 0
hash变更的数据 user name age,尤其是用户信息之类的,经常变动的信息。hash更适合于对象的存储,String更适合字符串存储。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: