redis入门——散列类型(hash)

本文介绍了Redis中的散列类型,它是一种键值字典结构,适合存储对象属性。对比关系型数据库,散列类型更利于拓展,可以避免不必要的列创建。文章详细讲解了散列的存储结构、操作命令如赋值、取值和删除字段。
摘要由CSDN通过智能技术生成

1.介绍 什么是散列类型

redis是采用字典结构以键值对形式存储数据的,而散列类型的键值也是一种字典结构,其存储类字段(field)和字段值的映射,但是字段值只能是字符串,不支持其他类型,也就是说不能嵌套其他类型

我们先来看下redis中,散列类型的存储结构(图我是拿其他博主的)

散列结构非常适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,字段表示存储的属性值。

和关系型数据库相比,这种存储结构更加有利于拓展,想想,如果为了关系型数据库中的一个元组添加属性,就得创建一个新的列,这是非常没有必要的

2.操作命令

 1.赋值与取值

127.0.0.1:6379> HSET car1 price 90
(integer) 1
127.0.0.1:6379> HGET car1 price
"90"
赋多个值有两种方式 如下两种,亲测,但是貌似网上找不到文章提到这一点的,我用的版本是4.0.2
127.0.0.1:6379> HSET car1 name 奥迪 color 白色
(integer) 2
127.0.0.1:6379> HMSET car1 h 1 w 1
OK
127.0.0.1:6379> HMGET car1 name color price
1) "\xe5\xa5\xa5\xe8\xbf\xaa"
2) "\xe7\x99\xbd\xe8\x89\xb2"
3) "90"
127.0.0.1:6379> HGETALL car1
1) "price"
2) "90"
3) "name"
4) "\xe5\xa5\xa5\xe8\xbf\xaa"
5) "color"
6) "\xe7\x99\xbd\xe8\x89\xb2"
HSET命令不区分插入和更新操作,如果执行插入操作会返回1,更新操作返回0,键不存在时会自动建立它

127.0.0.1:6379> HGET car1 price
"90"

127.0.0.1:6379> HSET car1 price 30
(integer) 0

127.0.0.1:6379> HGET car1 price
"30"
 2.判断字段是否存在 存在返回1 不存在返回0

127.0.0.1:6379> HEXISTS car1 price
(integer) 1
127.0.0.1:6379> HEXISTS car1 nonono
(integer) 0


3.当字段不存在时赋值

127.0.0.1:6379> HGET car1 price
"30"
127.0.0.1:6379> HSETNX car1 price 15
(integer) 0
127.0.0.1:6379> HGET car1 price
"30"

 4.添加数字

 

127.0.0.1:6379> HGET car1 price
"30"
127.0.0.1:6379> HINCRBY car1 price 15
(integer) 45
127.0.0.1:6379> HGET car1 price
"45"

散列类型中,没有HINCR命令,可任意通过将增加值设为1来实现


5.删除字段

127.0.0.1:6379> HDEL car1 name color 
(integer) 2
可以删除一个或多个字段,返回值是被删除的字段个数
当删除的字段不存在时返回0

127.0.0.1:6379> HDEL car1 nonono
(integer) 0


6.只获取字段名

127.0.0.1:6379> HKEYS car1
1) "price"


7.只获取字段值

127.0.0.1:6379> HVALS car1
1) "45"

8.获取字段数量

127.0.0.1:6379> HLEN car1
(integer) 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值