Redis学习04——存储哈希(hash)

本文介绍了Redis中哈希类型(Hash)的基础知识,包括如何使用hset和hmset进行键值对的赋值,hget和hmget进行取值,以及hdel用于删除字段或整个哈希。此外,还涵盖了其他如hexists、hlen、hkeys和hvals等命令的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis学习04——存储哈希(hash)

一、概述

Redis中的 Hash类型可以看做是具有 String key 和 String value 的map容器。所以该类型非常适存储对象的信息。例如UserName、password和Age等。
如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。每个Hash可以存储 4294967295 个键值对。

这里写图片描述

二、赋值

2.1 hset key field value

命令:

hset key field value   

含义:
为key设置 field/value对(键值对)

示例

[root@wiming bin]# ./redis-cli
127.0.0.1:6379> hset myhash name qiwenming
(integer) 1

2.2 hmset key field1 value1 field2 value2 ….

命令:

hmset key field value fied2  value2 .....

含义:
设置key 的多个 field/value对(键值对)

示例

127.0.0.1:6379> hmset myhash username wiming age 18 gender 1
OK

三、取值

3.1 hget key field

命令:

hget key field   

含义:
返回指定key中的field的值

示例

127.0.0.1:6379> hget myhash name
"qiwenming"

3.2 hmget key field1 field2 ….

命令:

hmget key field1 field2.....

含义:
获取多个 field的值

示例

127.0.0.1:6379> hmget myhash username age gender
1) "wiming"
2) "18"
3) "1"

3.3 hgetall key

命令:

hgetall key 

含义:
获取key中所有的 field-value

示例

127.0.0.1:6379> hgetall myhash
 1) "name"
 2) "qiwenming"
 3) "username"
 4) "wiming"
 5) "age"
 6) "18"
 7) "gender"
 8) "1"

四、删除

4.1 hdel key field1 field2

命令:

hdel key field1 field2 ....

含义:
删除一个或者多个字段。返回值是被删除的字段个数

示例

127.0.0.1:6379> hmset myhash nm1 qwm nm2 xm
OK
127.0.0.1:6379> hgetall myhash
 1) "username"
 2) "wiming"
 3) "age"
 4) "18"
 5) "gender"
 6) "1"
 7) "nm1"
 8) "qwm"
 9) "nm2"
10) "xm"
127.0.0.1:6379> hdel myhash nm1
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "username"
2) "wiming"
3) "age"
4) "18"
5) "gender"
6) "1"
7) "nm2"
8) "xm"

4.2 del key

命令:

del key

含义:
删除整个hash。这个指令是通用的,5种数据类型都可以它来删除

示例

127.0.0.1:6379> hgetall myhash
1) "username"
2) "wiming"
3) "age"
4) "18"
5) "gender"
6) "1"
7) "nm2"
8) "xm"
127.0.0.1:6379> del myhash
(integer) 1
127.0.0.1:6379> hgetall key
(empty list or set)

五、增加数字

命令:

hincrby key field increment

含义:
设置key中field的值增加increment(正数是加,负数是减)

示例

127.0.0.1:6379> hmset myhash username wiming age 18 gender 1
OK
127.0.0.1:6379> hincrby myhash age 5
(integer) 23
127.0.0.1:6379> hincrby myhash age -6
(integer) 17

六、其他命令

6.1 hexists key field

命令:

hexists key field

含义:
判断指定key中的field是否存在

示例

127.0.0.1:6379> hexists myhash username
(integer) 1
127.0.0.1:6379> hexists myhash xxxxxx
(integer) 0

6.2 hlen key

命令:

hlen key

含义:
获取key所包含的field的数量

示例

127.0.0.1:6379> hlen myhash
(integer) 3

6.3 hkeys key

命令:

hkeys key

含义:
获取所有的key

示例

127.0.0.1:6379> hkeys myhash
1) "username"
2) "age"
3) "gender"

6.4 hvals key

命令:

hvals key

含义:
获取所有的value

示例

127.0.0.1:6379> hvals myhash
1) "wiming"
2) "17"
3) "1"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值