Bun Redis with Upstash
Upstash is a fully managed Redis database as a service. It works with the Redis® API, so you can connect with Bun's native Redis client.
Note
TLS is enabled by default for all Upstash Redis databases.
-
Create a new project
Create a new project with
bun init:bun init bun-upstash-redis cd bun-upstash-redis -
Create an Upstash Redis database
Go to the Upstash dashboard and create a new Redis database. After completing the getting started guide, you'll see your database page with connection information.
The database page displays two connection methods: HTTP and TLS. For Bun's Redis client, you need the TLS connection details; the URL starts with
rediss://.
-
Connect using Bun's Redis client
Set the
REDIS_URLenvironment variable in your.envfile using the Redis endpoint (not the REST URL):REDIS_URL=rediss://********@********.upstash.io:6379Bun's Redis client reads connection information from
REDIS_URLby default:import { redis } from "bun"; // Reads from process.env.REDIS_URL automatically await redis.set("counter", "0");Alternatively, create a custom client with
RedisClient:import { RedisClient } from "bun"; const redis = new RedisClient(process.env.REDIS_URL); -
Use the Redis client
Use the Redis client to read and write keys in your Upstash database:
import { redis } from "bun"; // Get a value let counter = await redis.get("counter"); // Set a value if it doesn't exist if (!counter) { await redis.set("counter", "0"); } // Increment the counter await redis.incr("counter"); // Get the updated value counter = await redis.get("counter"); console.log(counter);1The Redis client handles connections automatically. You don't need to connect or disconnect manually for basic operations.