# @derhuerst/redis-stream 中文文档

规范地址：https://npmcn.com/package/%40derhuerst/redis-stream/

版本：2\.0\.1
npm 元数据更新时间：2022-04-05T03:48:37.119Z
中文译文更新时间：2026-11-12T00:40:47.710Z
软件包许可：\(Apache-2\.0 AND Prosperity-3\.0\.0\)

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40derhuerst/redis-stream
原文对照：https://npmcn.com/package/%40derhuerst/redis-stream/?lang=original
项目主页：https://github.com/derhuerst/redis-stream
源码仓库：https://github.com/derhuerst/redis-stream

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：25.9 kB，12 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=10
- 运行依赖：2 个
- 首次发布：2019-05-28T09:10:59.867Z
- 最新版本发布：2020-06-04T13:58:18.568Z
- 近 30 天下载量：5425（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

Redis 5 流为可读和可写节点流 。 加一个CLI.

## 安装

```sh
npm install @derhuerst/redis-stream
```

也可以使用：`pnpm add @derhuerst/redis-stream`、`yarn add @derhuerst/redis-stream`、`bun add @derhuerst/redis-stream`

## README

# 重新分流

**[Redis 5 流线](https://redis.io/topics/streams-intro) 作为 [可读可写节点流( W)](https://nodejs.org/api/stream.html)。 。 。 .** 加上命令行接口.

[![npm version](https://img.shields.io/npm/v/@derhuerst/redis-stream.svg)](https://www.npmjs.com/package/@derhuerst/redis-stream) [![build status](https://api.travis-ci.org/derhuerst/redis-stream.svg?branch=master)](https://travis-ci.org/derhuerst/redis-stream) [![Prosperity/Apache license](https://img.shields.io/static/v1?label=license&message=Prosperity%2FApache&color=0997E8)](https://npmcn.com/package/%40derhuerst/redis-stream/#readme-license) ![minimum Node.js version](https://img.shields.io/node/v/@derhuerst/redis-stream.svg) [![chat with me on Gitter](https://img.shields.io/badge/chat%20with%20me-on%20gitter-512e92.svg)](https://gitter.im/derhuerst) [![support me via GitHub Sponsors](https://img.shields.io/badge/support%20me-donate-fa7664.svg)](https://github.com/sponsors/derhuerst)

## 安装

```shell
npm install @derhuerst/redis-stream
```

## 命令行使用情况

```
Usage:
    write-into-redis-stream <stream-name>
Examples:
    echo '{"user": "jane", "text": "hey!"}' | write-into-redis-stream chat-msgs
```

```
Usage:
    read-from-redis-stream <stream-name> [--history] [--live [--waitTimoout <ms>]] [--limit <n>]
Options:
    --live             Wait for newly added items? Default: true
    --waitTimeout  -t  How long to wait for newly added items. Default: Infinity
    --history          Read all past items from the stream? Default: false
    --limit        -l  Maximum number of items to read. Default: Infinity
Examples:
    read-from-redis-stream chat-msgs --live --limit 1000
```

## 使用 Java 脚本

### 写入 Redis 流

```js
const {createClient} = require('redis')
const createWriter = require('@derhuerst/redis-stream/writer')

const redis = createClient()
const writer = createWriter(redis, 'some-stream-name')
writer.once('finish', () => redis.quit())
writer.on('error', console.error)

writer.write({foo: 'bar'})
writer.end({hey: 'there!'})
```

### 从 Redis 流读取

```js
const {createClient} = require('redis')
const createReader = require('@derhuerst/redis-stream/reader')

const redis = createClient()
const reader = createReader(redis, 'some-stream-name')
reader.on('data', console.log)
reader.on('error', console.error)
```

## API 密码

### `createWriter(redis, streamName)`

回返a [可读流](https://nodejs.org/api/stream.html#stream_writable_streams) 内 [对象模式](https://nodejs.org/api/stream.html#stream_object_mode)。 。 。 .

### `createReader(redis, streamName, opt = {})`

回返a [可读流](https://nodejs.org/api/stream.html#stream_readable_streams) 内 [对象模式](https://nodejs.org/api/stream.html#stream_object_mode)。 。 。 . `opt` 可能是一个有下列条目的对象:

-   `live`:等待新添加的项目? 默认 : `true`
-   `waitTimeout`:等待新增加的物品需要多长时间. 默认 : `Infinity`
-   `history`: 从流中读取所有过去的项目 ? 默认 : `false`
-   `limit`: 应读项目的最大数量。 默认 : `Infinity`

## 许可证

这个项目有双重许可证: **我的捐款是特许的 [_繁荣公共许可证_](https://prosperitylicense.com/), (中文(简体) ), [其他人的贡献](https://github.com/derhuerst/redis-stream/graphs/contributors) 许可证为: [Apache 2.0 (英语)](https://apache.org/licenses/LICENSE-2.0)**。 。 。 .

> 此许可允许您免费使用和共享此软件用于非商业性目的,并允许您为商业目的尝试此软件30天.

> 为了公众知识、个人学习、私人娱乐、业余爱好项目、业余追求或宗教戒律.

[购买商业执照](https://licensezero.com/offers/dc2ee53d-4ef4-47b7-a48b-ffb42377620b) 或阅读更多关于 [为什么我卖私人许可证 我的项目](https://gist.github.com/derhuerst/0ef31ee82b6300d2cafd03d10dd522f7)。 。 。 .

## 捐款

如果您有问题或需要支持,请使用 `redis-stream`请检查您的代码并先设置。 如果您认为找到了错误或想要提出一个特性,请参考 [议题页](https://github.com/derhuerst/redis-stream/issues)。 。 。 .

通过贡献,你同意 释放你的修改在 [Apache 2.0 许可证](https://npmcn.com/package/%40derhuerst/redis-stream/LICENSE-APACHE)。 。 。 .

## 常见问题

### @derhuerst/redis-stream 是什么？

Redis 5 流为可读和可写节点流 。 加一个CLI\.

### 如何安装 @derhuerst/redis-stream？

在项目目录运行 npm install @derhuerst/redis-stream，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 read-from-redis-stream、write-into-redis-stream，可以用 npx read-from-redis-stream 直接运行。

### @derhuerst/redis-stream 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @derhuerst/redis-stream 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @derhuerst/redis-stream 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=10。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @derhuerst/redis-stream 可以商用吗？

@derhuerst/redis-stream 使用 \(Apache-2\.0 AND Prosperity-3\.0\.0\) 许可。声明的许可为 \(Apache-2\.0 AND Prosperity-3\.0\.0\)，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @derhuerst/redis-stream 的下载量有多少？

根据 npm 官方下载统计，@derhuerst/redis-stream 在 2026/10/12 – 2026/11/10 这 30 天内被下载 5,425 次，日均约 181 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @derhuerst/redis-stream 还在维护吗？

最新版本 2\.0\.1 发布于 2020/06/04（6 年前）；至今共发布 5 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/05/28。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

