{"id":13880856,"url":"https://github.com/upstash/redis-js","last_synced_at":"2026-03-12T10:18:37.501Z","repository":{"id":36964293,"uuid":"394437978","full_name":"upstash/redis-js","owner":"upstash","description":"HTTP based Redis Client for Serverless and Edge Functions","archived":false,"fork":false,"pushed_at":"2026-02-13T20:06:01.000Z","size":2616,"stargazers_count":910,"open_issues_count":14,"forks_count":88,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-02-14T03:27:14.824Z","etag":null,"topics":["redis","serverless","upstash","upstash-sdk"],"latest_commit_sha":null,"homepage":"https://docs.upstash.com/redis","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upstash.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-09T21:03:08.000Z","updated_at":"2026-02-12T05:06:41.000Z","dependencies_parsed_at":"2024-01-13T20:59:19.910Z","dependency_job_id":"6677b706-94d2-44e4-96fc-e6be4a60c7d2","html_url":"https://github.com/upstash/redis-js","commit_stats":{"total_commits":381,"total_committers":23,"mean_commits":"16.565217391304348","dds":0.6325459317585302,"last_synced_commit":"5558861e5d4c5c219ffd10ec90689fe88d50e9b5"},"previous_names":["upstash/upstash-js","upstash/redis-js","upstash/upstash-redis"],"tags_count":198,"template":false,"template_full_name":null,"purl":"pkg:github/upstash/redis-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Fredis-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Fredis-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Fredis-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Fredis-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upstash","download_url":"https://codeload.github.com/upstash/redis-js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upstash%2Fredis-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29438041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T05:24:35.651Z","status":"ssl_error","status_checked_at":"2026-02-14T05:24:34.830Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["redis","serverless","upstash","upstash-sdk"],"created_at":"2024-08-06T08:03:33.057Z","updated_at":"2026-03-12T10:18:37.471Z","avatar_url":"https://github.com/upstash.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Upstash Redis\n\n`@upstash/redis` is an HTTP/REST based Redis client for typescript, built on top\nof [Upstash REST API](https://docs.upstash.com/features/restapi).\n\n[![Tests](https://github.com/upstash/upstash-redis/actions/workflows/tests.yaml/badge.svg)](https://github.com/upstash/upstash-redis/actions/workflows/tests.yaml)\n![npm (scoped)](https://img.shields.io/npm/v/@upstash/redis)\n![npm bundle size](https://img.shields.io/bundlephobia/minzip/@upstash/redis)\n\n\u003e [!NOTE]  \n\u003e **This project is in GA Stage.**\n\u003e\n\u003e The Upstash Professional Support fully covers this project. It receives regular updates, and bug fixes. The Upstash team is committed to maintaining and improving its functionality.\n\nIt is the only connectionless (HTTP based) Redis client and designed for:\n\n- Serverless functions (AWS Lambda ...)\n- Cloudflare Workers (see\n  [the example](https://github.com/upstash/upstash-redis/tree/main/examples/cloudflare-workers))\n- Fastly Compute@Edge (see\n  [the example](https://github.com/upstash/upstash-redis/tree/main/examples/fastly))\n- Next.js, Jamstack ...\n- Client side web/mobile applications\n- WebAssembly\n- and other environments where HTTP is preferred over TCP.\n\nSee\n[the list of APIs](https://upstash.com/docs/redis/overall/rediscompatibility)\nsupported.\n\n## Quick Start\n\n### Install\n\n#### Node.js\n\n```bash\nnpm install @upstash/redis\n```\n\n#### Deno\n\n```ts\nimport { Redis } from \"https://esm.sh/@upstash/redis\";\n```\n\n### Create database\n\nCreate a new redis database on [upstash](https://console.upstash.com/)\n\n## Basic Usage:\n\n```ts\nimport { Redis } from \"@upstash/redis\"\n\nconst redis = new Redis({\n  url: \u003cUPSTASH_REDIS_REST_URL\u003e,\n  token: \u003cUPSTASH_REDIS_REST_TOKEN\u003e,\n})\n\n// string\nawait redis.set('key', 'value');\nlet data = await redis.get('key');\nconsole.log(data)\n\nawait redis.set('key3', 'value3', {ex: 1});\n\n// sorted set\nawait redis.zadd('scores', { score: 1, member: 'team1' })\ndata = await redis.zrange('scores', 0, 100 )\nconsole.log(data)\n\n// list\nawait redis.lpush('elements', 'magnesium')\ndata = await redis.lrange('elements', 0, 100 )\nconsole.log(data)\n\n// hash\nawait redis.hset('people', {name: 'joe'})\ndata = await redis.hget('people', 'name' )\nconsole.log(data)\n\n// sets\nawait redis.sadd('animals', 'cat')\ndata  = await redis.spop('animals', 1)\nconsole.log(data)\n```\n\n## Troubleshooting\n\nWe have a\n[dedicated page](https://docs.upstash.com/redis/sdks/javascriptsdk/troubleshooting)\nfor common problems. If you can't find a solution, please\n[open an issue](https://github.com/upstash/upstash-redis/issues/new).\n\n## Docs\n\nSee [the documentation](https://upstash.com/docs/redis/sdks/ts/overview) for\ndetails.\n\n## Release Workflow\n\n### Stable Release\n\n1. Create a changeset (`pnpm changeset`) describing your changes and merge it to `main`\n2. **Changeset** workflow runs on push to `main`. If changesets are pending, it opens a \"Version Packages\" PR. When that PR is merged, the workflow runs again, publishes git tags, creates GitHub releases, and uploads a `release-meta` artifact\n3. **Router** workflow detects the Changeset completion via `workflow_run`, downloads the `release-meta` artifact, and calls the **npm Publish** workflow with `prerelease: false` and the resolved version\n4. **npm Publish** checks out the released commit, builds, and publishes to npm under the `latest` tag\n\n### Canary Release\n\n1. Trigger the **Canary Release** workflow manually from the Actions tab, selecting the package\n2. It creates a snapshot version (`x.y.z-canary.{timestamp}`), creates a GitHub prerelease, and uploads a `release-meta` artifact\n3. **Router** picks it up the same way, calling **npm Publish** with `prerelease: true`\n4. **npm Publish** publishes to npm under the `canary` tag\n\n### CI Tests\n\nOn every pull request, push to `main`, and daily schedule, the **Router** workflow runs the **Tests** workflow (unit tests, lint, build, and example integration tests).\n\n## Contributing\n\n### [Install Bun](https://bun.sh/docs/installation)\n\n### Database\n\nCreate a new redis database on [upstash](https://console.upstash.com/) and copy\nthe url and token\n\n### Running tests\n\n```sh\nbun run test\n```\n\n### Building\n\n```sh\nbun run build\n```\n\n### Telemetry\n\nThis library sends anonymous telemetry data to help us improve your experience.\nWe collect the following:\n\n- SDK version\n- Platform (Deno, Cloudflare, Vercel)\n- Runtime version (node@18.x)\n\nYou can opt out by setting the `UPSTASH_DISABLE_TELEMETRY` environment variable\nto any truthy value.\n\n```sh\nUPSTASH_DISABLE_TELEMETRY=1\n```\n\nAlternatively, you can pass `enableTelemetry: false` when initializing the Redis client:\n\n```ts\nconst redis = new Redis({\n  // ...,\n  enableTelemetry: false,\n});\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupstash%2Fredis-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupstash%2Fredis-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupstash%2Fredis-js/lists"}