• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Redis研究(四)—散列类型

mysql 搞代码 4年前 (2022-01-09) 34次浏览 已收录 0个评论

散列类型(hash)的键也是一种字典结构,其存储了字段(field)和字段的映射,但字段只能是字符串,不支持其他数据类型。 散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多2^32-1个字段。 一、介绍 散列类型适合存储对象:使用对象类别和ID构成

散列类型(hash)的键值也是一种字典结构,其存储了字段(field)和字段值的映射,但字段值只能是字符串,不支持其他数据类型。

散列类型不能嵌套其他的数据类型。一个散列类型键可以包含至多2^32-1个字段。

一、介绍

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

如果要关系数据中存储汽车对象:

数据是以二维表的形式存储的,这就要求所有的记录都有同样的属性,无法单独为某条记录增减属性。如果想要为ID为1的汽车增加生产日期属性,就需要把数据表更改为vcD4KPHA+PGltZyBzcmM9″http://www.2cto.com/uploadfile/Collfiles/20141217/20141217091544219.png” alt=”\”>

ID为2和3的两条记录来说data字段是冗余的。数据量多难以维护。

但是,Redis就可以自由的为任何键增减字段而不影响其他键。

二、命令

1.赋值与取值

hset key field valuehget key fieldhmset key f1 v1 f2 v2......hmget key f1 f2.....hgetall key

hset不区分插入和更新操作,当执行的是插入时(之前字段不存在)hset返回1,当执行的是更新操作(之前字段已经存在)时hset返回0.当键本身不存在时hset还会自动建立它。

hgetall命令获取键中所有的字段和字段值。

2.判断字段是否存在

hexists key field

存在返回1,不存在返回0,当键不存在也返回0

3.当字段不存在时赋值

和hset区别如果字段已经存在,hsetnx命令不执行任何操作,原子操作,不用担心竞态条件。

hsetnx k<strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong>ey field value

4.增加数字

hincrby key field increment

5.删除字段

hdel key f1 f2...

三、实践
存储一篇文章

第一种方法:

第二种方法:

第二种更加直观也更容易维护,存储节约空间。

四、命令拾遗

hkeys key 只获取字段hvals key 只获取字段值hlen key 获得字段数量



搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Redis研究(四)—散列类型

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址