原文在这里。
Redis哈希是以字段-值对的形式组织的记录类型。你可以使用哈希表示基本对象,并存储计数器的分组,等等。
> 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,但返回值数组:
> HMGET bike:1 model price no-such-field
1) "Deimos"
2) "4972"
3) (nil)
还有一些命令可以对单个字段执行操作,比如HINCRBY:
> HINCRBY bike:1 price 100
(integer) 5072
> HINCRBY bike:1 price -100
(integer) 4972
你可以在文档中找到哈希命令的完整列表。
值得注意的是,小型哈希(即,具有小值的几个元素)以内存中的一种特殊方式进行编码,使它们非常内存高效。
基本命令
- HSET在哈希上设置一个或多个字段的值。
- HGET返回给定字段的值。
- HMGET返回一个或多个给定字段的值。
- HINCRBY按所提供的整数递增给定字段的值。
详见完整的列表命令。
示例
- 存储bike:1已经骑行的次数、发生事故的次数或更改所有者的次数的计数器:
> 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)。
少部分命令 - 如HKEYS,HVALS和HGETALL - 是 O(n),n是字段-值的数量。
限制
每个哈希可以存储最多4,294,967,295($2^{32} - 1$)个字段-值对。在实践中,你的哈希仅受托管Redis部署的VMs上的总体内存限制。
了解更多
- Redis哈希解析是一个简短而全面的视频解释,涵盖了Redis哈希。
- Redis University RU101深入探讨了Redis哈希。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意
腾讯云开发者社区:孟斯特