# add/replace 等补充命令

URL: https://caijiao.org/memcached/03-basic/02-cli-add-replace
Source: docs/memcached/03-basic/02-cli-add-replace.md
Description: 本章节介绍 Memcached 中的 add、replace 等补充命令，帮助用户更灵活地控制缓存数据的写入和更新操作。

除了常用的 set/get/delete，Memcached 还提供了一些补充命令，如 `add`、`replace`，用于更细粒度地控制缓存操作。

## add 命令

`add` 只有当指定的键不存在时，才将数据写入缓存。格式与 `set` 相似：

```bash
add <key> <flags> <exptime> <bytes> \[noreply] <data block>
````

如果键已存在，服务器返回 `NOT_STORED`。

示例：

```bash
add session:12345 0 600 8
logged_in
````

该命令只会在 `session:12345` 不存在时存入数据。

## replace 命令

`replace` 只有当指定键已存在时，才会更新数据。格式同 `set`：

```bash
replace <key> <flags> <exptime> <bytes> [noreply]
<data block>
```

如果键不存在，服务器返回 `NOT_STORED`。

示例：

```bash
replace session:12345 0 600 9
logged_out
```

该命令只会替换存在的 `session:12345` 数据。

## append 和 prepend

* `append`：在已有键对应的值后追加数据。
* `prepend`：在已有键对应的值前添加数据。

格式示例：

```bash
append <key> <flags> <exptime> <bytes> [noreply]
<data block>
```

服务器返回 `STORED` 表示成功。

## 小结

这些命令提供了更灵活的数据写入策略，方便在不同业务场景中控制缓存内容。
