Skip to main content

Disable automatic serialization

Your data is (de)serialized as json by default. This works for most use cases but you can disable it if you want:
const redis = new Redis({
  // ...
  automaticDeserialization: false,
});

// or
const redis = Redis.fromEnv({
  automaticDeserialization: false,
});
This probably breaks quite a few types, but it’s a first step in that direction. Please report bugs and broken types here.

Keep-Alive

@upstash/redis optimizes performance by reusing connections wherever possible, reducing latency. This is achieved by keeping the client in memory instead of reinitializing it with each new function invocation. As a result, when a hot lambda function receives a new request, it uses the already initialized client, allowing for the reuse of existing connections to Upstash.
This functionality is enabled by default.

Request Timeout

You can configure the SDK so that it will throw an error if the request takes longer than a specified time. You can achieve this using the signal parameter like this:
try {
  const redis = new Redis({
    url: "<UPSTASH_REDIS_REST_URL>",
    token: "<UPSTASH_REDIS_REST_TOKEN>",
    // set a timeout of 1 second
    signal: () => AbortSignal.timeout(1000),
  });
} catch (error) {
  if (error.name === "TimeoutError") {
    console.error("Request timed out");
  } else {
    console.error("An error occurred:", error);
  }
}

Telemetry

This library sends anonymous telemetry data to help us improve your experience. We collect the following:
  • SDK version
  • Platform (Deno, Cloudflare, Vercel)
  • Runtime version (node@18.x)
You can opt out by setting the UPSTASH_DISABLE_TELEMETRY environment variable to any truthy value.
UPSTASH_DISABLE_TELEMETRY=1
Alternatively, you can pass enableTelemetry: false when initializing the Redis client:
const redis = new Redis({
  // ...,
  enableTelemetry: false,
});
I