🐟

Upstash Redisをローカルとサーバーレスで使う

2023/04/20に公開

Upstash のプロダクトの1つに、Serverless環境で使えるように整備されたServerless Redisのプロダクトを提供しています。

ここでは、HTTPベースでEdgeなServerless環境からでも操作できる方法を紹介します。

Upstash RedisのVersion

本日時点では6.2のようです。
https://docs.upstash.com/redis/overall/rediscompatibility

fetch

fetchを使ってKVSからGETやSETができます。
https://docs.upstash.com/redis/features/restapi

fetch("https://Upstash Redisのエンドポイント/set/foo/bar", {
  headers: {
    Authorization: "Bearer ******"
  }
}).then(response => response.json())
  .then(data => console.log(data));

@upstash/redis

@upstash/redisは、HTTPベースのアクセスを提供します。
例えば、Cloudflareの場合は以下で、インクリメントできます。

import { Redis } from "@upstash/redis/cloudflare"

const redis = new Redis({
url: "http://Upstash Redisのエンドポイント",
token: "******",
})
await redis.incr("value")
const value = await redis.get("value")
console.log(value)

他のクラウドサービスを使う場合の方法も、サンプルで用意されています。
https://github.com/upstash/upstash-redis/tree/main/examples

ローカル開発

一部差分はあるようですが、Upstash Redisをローカルで動かす方法があります。
https://docs.upstash.com/redis/sdks/javascriptsdk/developing-or-testing

https://github.com/hiett/serverless-redis-http

最後に

Serverless環境から直接アクセスできて、ローカル開発もできるのでは素晴らしいですね。
UpstashのRedisについては、以下も参考になります。
https://zenn.dev/tkithrta/articles/a56603a37b08f0

Discussion