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整理維護