Redis 哈希(Hash)

介绍

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

Hash的存储方式:
键值key
字段1 字段值
字段2 字段值

Hash存储可以直接看作对象的存储,key为对象名,对象里有很多的属性(字段)。

常用命令

HSET

将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。

127.0.0.1:6379> HSET hname k1 v1
(integer) 1
127.0.0.1:6379> HSET hname k2 v2
(integer) 1
127.0.0.1:6379> HSET hname k1 v111
(integer) 0
127.0.0.1:6379> HGETALL hname
1) "k1"
2) "v111"
3) "k2"
4) "v2"
HGET key field

返回哈希表 key 中给定域 field 的值。

127.0.0.1:6379> HGET hname k1
"v111"
HDEL key field [field …]

删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。

127.0.0.1:6379> HDEL hname k1 k2
(integer) 2

返回删除的字段数。

HEXISTS key field

查看哈希表 key 中,给定域 field 是否存在。

127.0.0.1:6379> HEXISTS hname k1
(integer) 0
127.0.0.1:6379> HSET hname k1 v1
(integer) 1
127.0.0.1:6379> HEXISTS hname k1
(integer) 1
HGETALL key

返回哈希表 key 中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。

127.0.0.1:6379> HGETALL hname
1) "k1"
2) "v1"
3) "k2"
4) "v2"
5) "k3"
6) "v3"
HKEYS key

返回哈希表 key 中的所有域(字段)。

127.0.0.1:6379> HKEYS hname
1) "k1"
2) "k2"
3) "k3"
HLEN key

返回哈希表 key 中域的数量。

127.0.0.1:6379> HLEN hname
(integer) 3
HMSET key field value [field value …]

同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。

127.0.0.1:6379> HMSET hn f1 v1 f2 v2 f3 v3
OK
127.0.0.1:6379> HGETALL hn
1) "f1"
2) "v1"
3) "f2"
4) "v2"
5) "f3"
6) "v3"
HMGET key field [field …]

返回哈希表 key 中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回一个 nil 值。
因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。

127.0.0.1:6379> HMGET hn f1 f2
1) "v1"
2) "v2"
HSETNX key field value

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。
若域 field 已经存在,该操作无效。
如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。

127.0.0.1:6379> HSETNX hn f1 v1
(integer) 0
127.0.0.1:6379> HSETNX hn f4 v4
(integer) 1
HVALS key

返回哈希表 key 中所有域(字段)的值。空哈希表/不存在的key时返回0。

127.0.0.1:6379> HVALS hn
1) "v1"
2) "v2"
3) "v3"
4) "v4"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值