8. Redis数据类型--Hash

8. Redis数据类型–Hash


Redis 哈希(Hash)
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
实例

127.0.0.1:6379>  HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
127.0.0.1:6379>  HGETALL runoobkey
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"

在以上实例中,我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 runoobkey 中。


Redis hash 命令

HDEL key field1 [field2]
删除一个或多个哈希表字段

HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。

HGET key field
获取存储在哈希表中指定字段的值。

HGETALL key
获取在哈希表中指定 key 的所有字段和值

HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。

HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。

HKEYS key
获取所有哈希表中的字段

HLEN key
获取哈希表中字段的数量

HMGET key field1 [field2]
获取所有给定字段的值

HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。

HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。

HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。

HVALS key
获取哈希表中所有值。

HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。

Redis Hash类型操做命令实例:
Map集合,key-map,值对应的是一个map集合!本质上和string类型没有太大的区别,还是一个简单的key-value。

HGET/HSET:添加和取出
HMSET/HMGET:批量添加和取出
HLEN:获取长度

127.0.0.1:6379> HSET myhash f1 v1
(integer) 1
127.0.0.1:6379> HGET myhash f1
"v1"
127.0.0.1:6379> HMSET myhash f2 v2 f3 v3
OK
127.0.0.1:6379> HMGET myhash f1 f2 f3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> HGETALL myhash
1) "f1"
2) "v1"
3) "f2"
4) "v2"
5) "f3"
6) "v3"
127.0.0.1:6379> HMSET myhash f1 v1 f2 v2 f3 v3
OK
127.0.0.1:6379> HLEN myhash
(integer) 3

HDEL:删除指定map对应的键

127.0.0.1:6379> HDEL myhash f1
(integer) 1
127.0.0.1:6379> HGETALL myhash
1) "f2"
2) "v2"
3) "f3"
4) "v3"

127.0.0.1:6379> hdel myhash f2
(integer) 1
127.0.0.1:6379> hdel myhash f3
(integer) 1
127.0.0.1:6379> HGET myhash f1
(nil)
127.0.0.1:6379> HGETALL myhash
(empty list or set)
HEXIST:hash中指定字段是否存在
127.0.0.1:6379> HEXISTS myhash f1
(integer) 1
127.0.0.1:6379> HEXISTS myhash f11
(integer) 0

获取所有的map key
获取或有的map value

127.0.0.1:6379> HKEYS myhash
1) "f1"
2) "f2"
3) "f3"

127.0.0.1:6379> HVALS myhash
1) "v1"
2) "v2"
3) "v3"

HSETNX:不存在则设置
HINCRBY:值增加

127.0.0.1:6379> HSET myhash f1 5
(integer) 1
127.0.0.1:6379> HSETNX myhash f2 10
(integer) 1
127.0.0.1:6379> HKEYS myhash
1) "f1"
2) "f2"
127.0.0.1:6379> HINCRBY myhash f1 3
(integer) 8
127.0.0.1:6379> HKEYS myhash
1) "f1"
2) "f2"
127.0.0.1:6379> HGETALL myhash
1) "f1"
2) "8"
3) "f2"
4) "10"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值