Redis - 哈希
Redis - 哈希 (Hashes)
Section titled “Redis - 哈希 (Hashes)”Redis 哈希 (Hashes) 是一种将字符串字段映射到字符串值的数据类型。它们是表示对象的完美数据结构,例如用户配置文件、产品或任何具有多个属性的实体。单个哈希可以存储超过 40 亿个字段-值对。
用例:建模对象
Section titled “用例:建模对象”与其将对象的每个属性存储为单独的顶级键(例如,user:1001:name、user:1001:email),不如将它们分组到一个哈希中。这样内存效率更高,逻辑上组织更清晰。
我们将使用现代的 HSET 命令,它可以一次设置多个字段。键 user:1001 代表我们的对象,随后的对是它的字段和值。
127.0.0.1:6379> HSET user:1001 name "Jane Doe" email "jane.doe@example.com" plan "premium" visits 150(integer) 4
127.0.0.1:6379> HGETALL user:10011) "name"2) "Jane Doe"3) "email"4) "jane.doe@example.com"5) "plan"6) "premium"7) "visits"8) "150"注意:HMSET 在旧版本的 Redis 中使用,但现在已弃用,推荐使用带有多个字段/值参数的 HSET 命令。
常用哈希命令
Section titled “常用哈希命令”下面是处理哈希的关键命令表。
| 命令 | 描述 |
|---|---|
| HSET key field value [field value …] | 在哈希中设置一个或多个字段-值对。如果哈希不存在则创建它。 |
| HGET key field | 从哈希中获取特定字段的值。 |
| HMGET key field [field …] | 从哈希中获取多个指定字段的值。 |
| HGETALL key | 获取哈希中的所有字段及其值。对于非常大的哈希,请谨慎使用。 |
| HDEL key field [field …] | 从哈希中删除一个或多个字段。 |
| HKEYS key | 获取哈希中的所有字段名(键)。 |
| HVALS key | 获取哈希中的所有值。 |
| HLEN key | 获取哈希中字段的数量。 |
| HEXISTS key field | 判断哈希中是否存在某个字段。如果存在则返回 1,否则返回 0。 |
| HINCRBY key field increment | 将哈希字段的整数值增加给定数量。在我们的示例中,我们可以运行 HINCRBY user:1001 visits 1。 |
| HINCRBYFLOAT key field increment | 将哈希字段的浮点值增加给定数量。 |
| HSETNX key field value | 设置字段的值,仅当字段不存在时才设置。 |
| HMSET key field value [field value …] | 自 Redis 4.0.0 起已弃用。请使用 HSET 代替。 |