Skip to content

Upstash 是一个完全托管的 Redis 数据库即服务。Upstash 与 Redis® API 兼容,这意味着你可以使用 Bun 的原生 Redis 客户端连接到你的 Upstash 数据库。

NOTE

所有 Upstash Redis 数据库默认启用 TLS。

创建新项目">

运行 `bun init` 创建一个新项目:

```sh
bun init bun-upstash-redis
cd bun-upstash-redis
```

创建 Upstash Redis 数据库">

前往 [Upstash 控制台](https://console.upstash.com/) 创建一个新的 Redis 数据库。完成 [入门指南](https://upstash.com/docs/redis/overall/getstarted) 后,你将看到带有连接信息的数据库页面。

数据库页面显示两种连接方式:HTTP 和 TLS。对于 Bun 的 Redis 客户端,你需要 **TLS** 连接详情。此 URL 以 `rediss://` 开头。

	<Frame>
		![Upstash Redis 数据库页面](/images/guides/upstash-1.png)
	</Frame>

使用 Bun 的 Redis 客户端连接">

	你可以通过设置环境变量与 Bun 的默认 `redis` 客户端连接到 Upstash。

在 `.env` 文件中使用 Redis 端点(不是 REST URL)设置 `REDIS_URL` 环境变量:

```ini .env icon="settings"
REDIS_URL=rediss://********@********.upstash.io:6379
```

Bun 的 Redis 客户端默认从 `REDIS_URL` 读取连接信息:

```ts index.ts icon="/icons/typescript.svg"
import { redis } from "bun";

// 自动从 process.env.REDIS_URL 读取
await redis.set("counter", "0"); // [!code ++]
```

或者,你可以使用 `RedisClient` 创建自定义客户端:

```ts index.ts icon="/icons/typescript.svg"
import { RedisClient } from "bun";

const redis = new RedisClient(process.env.REDIS_URL); // [!code ++]
```


#### 使用 Redis 客户端">
	你现在可以使用 Redis 客户端与你的 Upstash Redis 数据库交互:

	```ts index.ts icon="/icons/typescript.svg"
	import { redis } from "bun";

	// 获取值
	let counter = await redis.get("counter");

	// 如果值不存在则设置
	if (!counter) {
		await redis.set("counter", "0");
	}

	// 递增计数器
	await redis.incr("counter");

	// 获取更新后的值
	counter = await redis.get("counter");
	console.log(counter);
	```
	```txt
	1
	```

	Redis 客户端在后台自动处理连接。基本操作无需手动连接或断开。

Bun学习网由www.bunjs.com.cn整理维护