Redis支持的数据类型-Hash

Redis支持5种数据类型,String/Hash/List/SortedSet/Set

Hash - 哈希值

Redis的哈希键值对的集合。 Redis的哈希值(value)是字符串字段和字符串值之间的映射,所以它们被用来表示对象

每个哈希可存储多达2³² - 1个 字段-值对(超过40+亿)。

 

1

HMSET key field1 value1 [field2 value2 ] 

同时将多个 field-value (-)对设置到哈希表 key 中。

127.0.0.1:6379> hmset user01 userId 1 username zhangsan password 123456 desc "one good man"

OK

 

类似于:insert into tb_user (userId,username, password, desc)

(1, zhangsan, 123456 “one good man”);

 

2

HEXISTS key field

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

127.0.0.1:6379> hexists user01 desc

(integer) 1

查看user01对应的value中是否包含desc这个字段。

3

HGET key field 

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

127.0.0.1:6379> hget user01 username

"zhangsan"

类似于:因为user01rediskey

Select username from tb_user where user_id=1;

4

HGETALL key 

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

127.0.0.1:6379> hgetall user01

1) "userId"

2) "1"

3) "username"

4) "zhangsan"

5) "password"

6) "123456"

7) "desc"

8) "one good man"

类似于:Select * from tb_user where user_id=1;

5

HINCRBY key field increment 

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

127.0.0.1:6379> hincrby user01 userId 3

(integer) 4

127.0.0.1:6379> hget user01 userId

"4"

6

HINCRBYFLOAT key field increment

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

127.0.0.1:6379> hincrbyfloat user01 userId 2.34

"6.34"

127.0.0.1:6379> hget user01 userId

"6.34"

7

HKEYS key 

获取哈希表中指定key的所有字段名称

127.0.0.1:6379> hkeys user01

1) "userId"

2) "username"

3) "password"

4) "desc"

8

HLEN key 

获取哈希表中字段的数量

127.0.0.1:6379> hlen user01

(integer) 4

9

HMGET key field1 [field2] 

获取所有给定字段的值

127.0.0.1:6379> hmget user01 userId

1) "6.34"

127.0.0.1:6379> hmget user01 userId username

1) "6.34"

2) "zhangsan"

类似于:select userId, username from tb_user where userkey=xxx

10

HDEL key field1 [field2] 

删除一个或多个哈希表字段

127.0.0.1:6379> hdel user01 username password

(integer) 2

127.0.0.1:6379> hkeys user01

1) "userId"

2) "desc"

11

HSET key field value 

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

如果哈希表中有这个字段,则设置该字段的值,如果没有,则在哈希表中添加一个字段。

127.0.0.1:6379> hgetall user01

1) "userId"

2) "6.34"

3) "desc"

4) "one good man"

127.0.0.1:6379> hset user01 desc "this is zhangsan"

(integer) 0

127.0.0.1:6379> hgetall user01

1) "userId"

2) "6.34"

3) "desc"

4) "this is zhangsan"

类似于:

Update tb_user set a = avalue, b=bvalue where userID=xxx

 

12

HSETNX key field value

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

127.0.0.1:6379> hsetnx user01 userId 13

(integer) 0

127.0.0.1:6379> hgetall user01

1) "userId"

2) "6.34"

3) "desc"

4) "this is zhangsan"

127.0.0.1:6379> hsetnx user01 username zhangsan

(integer) 1

127.0.0.1:6379> hgetall user01

1) "userId"

2) "6.34"

3) "desc"

4) "this is zhangsan"

5) "username"

6) "zhangsan"

13

HVALS key 

获取哈希表中所有值

127.0.0.1:6379> hvals user01

1) "6.34"

2) "this is zhangsan"

3) "zhangsan"

Select * from tb_user where user_id = xxx

14

HSCAN key cursor [MATCH pattern] [COUNT count]

迭代哈希表中的键值对。




注意:hash没有设置过期时间的命令


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值