# Hash（哈希）

URL: https://caijiao.org/redis/03-data-structures/04-hash
Source: docs/redis/03-data-structures/04-hash.md
Description: Redis 的 Hash（哈希）是一种键值对集合，适合存储对象属性，支持高效读写单个字段，常用于用户信息、配置管理和对象缓存等场景。

Redis 的 Hash 是一个键对应多个字段和值的集合，类似于传统编程语言中的字典或对象。它特别适合存储结构化数据。

## 基本操作

- **HSET**：设置一个或多个字段的值

```bash
HSET key field value [field value ...]
````

* **HGET**：获取指定字段的值

```bash
HGET key field
```

* **HMSET**（已废弃，推荐使用 HSET）：

```bash
HSET key field1 value1 field2 value2 ...
```
  
* **HMGET**：获取多个字段的值

```bash
HMGET key field1 field2 ...
```
  
* **HDEL**：删除一个或多个字段

```bash
HDEL key field [field ...]
```

## 其他命令

* **HEXISTS**：检查字段是否存在

```bash
HEXISTS key field
```

* **HGETALL**：获取哈希表中所有字段和值

```bash
HGETALL key
```

* **HLEN**：获取字段数量

```bash
HLEN key
```

* **HINCRBY**：对字段的数值执行增减操作

```bash
HINCRBY key field increment
```

## 应用场景

Hash 适合存储对象属性如用户资料、商品信息等，可以高效操作单个字段，减少网络传输和存储空间，是结构化数据缓存的理想选择。
