
# storh

storh 是一个独立的 PHP 文件数据存储，包含 JSONC 文档、仅追加的分段日志和仅追加的队列。它使用 UUIDv7 ID 存储记录，支持流式读取及游标或时间范围查询，并使用文件系统原子操作，而无需数据库服务器。

调用方提供目录。storh 不会查找应用程序路径、读取全局常量，也不需要框架适配器。

## 引擎

- `DocStore` 为每条记录存储一个 JSONC 文件，路径按 UUID 尾部字符分片。
  最适合按 ID 点查和按索引字段查询。
- `SegmentedLog` 将记录以 JSON 行的形式追加到分段文件，并以字节长度和校验和前缀进行保护。最适合追加密集型数据流，以及游标和时间范围读取。
- `Queue` 追加持久化任务事件，并将队列状态保存在内存中。最适合在进程间持久化分发任务。

不确定哪一种适合你的工作负载？请参阅[选择引擎](https://storh.inline0.dev/zh/docs/engines#choosing-an-engine)，查看并列比较。

`DocStore`、`SegmentedLog` 和 `Queue` 是实现类 `DocPerFileStore`、`SegmentedLogStore` 和 `LogQueue` 的类别名，因此两个名称指向同一个类。

## 要求

- PHP 8.2 或更高版本
- `ext-json`
- 支持在目录内原子重命名的本地或挂载文件系统

## 接下来

- [安装](https://storh.inline0.dev/zh/docs/install)
- [快速开始](https://storh.inline0.dev/zh/docs/quick-start)
- [引擎](https://storh.inline0.dev/zh/docs/engines)
- [扩展与限制](https://storh.inline0.dev/zh/docs/scaling-limits)
