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 协议》,转载必须注明作者和本文链接
未填写
文章
247
粉丝
19
喜欢
219
收藏
63
排名:723
访问:9993
私信
所有博文
社区赞助商