前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis hashes

Redis hashes

作者头像
孟斯特
发布2024-01-23 16:41:47
1700
发布2024-01-23 16:41:47
举报
文章被收录于专栏:code人生code人生

原文在这里[1]。

Redis哈希是以字段-值对的形式组织的记录类型。你可以使用哈希表示基本对象,并存储计数器的分组,等等。

代码语言:javascript
复制
> HSET bike:1 model Deimos brand Ergonom type 'Enduro bikes' price 4972
(integer) 4
> HGET bike:1 model
"Deimos"
> HGET bike:1 price
"4972"
> HGETALL bike:1
1) "model"
2) "Deimos"
3) "brand"
4) "Ergonom"
5) "type"
6) "Enduro bikes"
7) "price"
8) "4972"

虽然哈希很方便表示

对象

,但实际上,你可以放置在哈希中的字段数量没有实际限制(除了可用内存),因此你可以在应用程序中以许多不同的方式使用哈希。

HSET命令设置哈希的多个字段,而HGET检索单个字段。HMGET类似于HGET,但返回值数组:

代码语言:javascript
复制
> HMGET bike:1 model price no-such-field
1) "Deimos"
2) "4972"
3) (nil)

还有一些命令可以对单个字段执行操作,比如HINCRBY

代码语言:javascript
复制
> HINCRBY bike:1 price 100
(integer) 5072
> HINCRBY bike:1 price -100
(integer) 4972

你可以在文档中找到哈希命令的完整列表[2]。

值得注意的是,小型哈希(即,具有小值的几个元素)以内存中的一种特殊方式进行编码,使它们非常内存高效。

基本命令

HSET在哈希上设置一个或多个字段的值。•HGET返回给定字段的值。•HMGET返回一个或多个给定字段的值。•HINCRBY按所提供的整数递增给定字段的值。

详见完整的列表命令[3]。

示例

•存储bike:1已经骑行的次数、发生事故的次数或更改所有者的次数的计数器:

代码语言:javascript
复制
> HINCRBY bike:1:stats rides 1
(integer) 1
> HINCRBY bike:1:stats rides 1
(integer) 2
> HINCRBY bike:1:stats rides 1
(integer) 3
> HINCRBY bike:1:stats crashes 1
(integer) 1
> HINCRBY bike:1:stats owners 1
(integer) 1
> HGET bike:1:stats rides
"3"
> HMGET bike:1:stats owners crashes
1) "1"
2) "1"

性能

大多数Redis哈希命令都是O(1)。

少部分命令 - 如HKEYSHVALSHGETALL - 是 O(n),n是字段-值的数量。

限制

每个哈希可以存储最多4,294,967,295(2^{32} - 1)个字段-值对。在实践中,你的哈希仅受托管Redis部署的VMs上的总体内存限制。

了解更多

•Redis哈希解析[4]是一个简短而全面的视频解释,涵盖了Redis哈希。•Redis University RU101[5]深入探讨了Redis哈希。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[6]进行许可,使用时请注明出处。 Author: mengbin[7] blog: mengbin[8] Github: mengbin92[9] cnblogs: 恋水无意[10] 腾讯云开发者社区:孟斯特[11]

References

[1] 这里: https://redis.io/docs/data-types/hashes/ [2] 文档中找到哈希命令的完整列表: https://redis.io/commands#hash [3] 完整的列表命令: https://redis.io/commands/?group=hash [4] Redis哈希解析: https://www.youtube.com/watch?v=-KdITaRkQ-U [5] Redis University RU101: https://university.redis.com/courses/ru101/?_ga=2.74392018.130259205.1705572418-889654803.1705481218&_gl=1*1q0u96o*_ga*ODg5NjU0ODAzLjE3MDU0ODEyMTg.*_ga_8BKGRQKRPV*MTcwNTgyNjQ0OS4xMS4xLjE3MDU4MjY0NTIuNTcuMC4w*_gcl_au*MTQzNTAwOTk2LjE3MDU0ODEyMTc. [6] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [7] mengbin: mengbin1992@outlook.com [8] mengbin: https://mengbin.top [9] mengbin92: https://mengbin92.github.io/ [10] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/ [11] 孟斯特: https://cloud.tencent.com/developer/user/6649301

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孟斯特 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本命令
  • 示例
  • 性能
  • 限制
  • 了解更多
    • References
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档