├── search ├── quickstarts │ └── nextjs.ts ├── .keep ├── overall │ └── pricing.mdx └── sdks │ ├── ts │ ├── commands │ │ └── reset.mdx │ └── contributing.mdx │ └── py │ └── commands │ └── reset.mdx ├── _snippets ├── support-snippet.mdx ├── snippet-example.mdx ├── trials.mdx ├── redis │ ├── ioredisnote.mdx │ └── redisclientnote.mdx ├── legal-snippet.mdx └── uptime-snippet.mdx ├── workflow ├── howto │ └── flow-control.mdx ├── sdk │ ├── workflow-js.mdx │ └── workflow-py.mdx ├── llms-txt.mdx ├── agents │ └── examples.mdx ├── roadmap.mdx ├── features │ └── flow-control │ │ └── monitor.mdx └── basics │ └── client │ └── dlq │ └── callback.mdx ├── .gitattributes ├── devops ├── terraform.mdx └── developer-api │ └── authentication.mdx ├── favicon.png ├── img ├── code.png ├── favicon.png ├── eco-icon.png ├── datadog │ ├── team.png │ ├── personal.png │ ├── connect-acc.png │ ├── installation.png │ ├── integration-tab.png │ ├── upstash-dashboard.png │ └── upstash-qstash-dashboard.png ├── docusaurus.png ├── globaldb │ ├── map.png │ ├── map2.png │ └── regionselect.png ├── n8n │ ├── redis-1.png │ ├── redis-2.png │ ├── redis-3.png │ ├── redis-4.png │ ├── webhook.png │ ├── redis-get.png │ ├── qstash-curl.png │ ├── qstash-http.png │ ├── qstash-import.png │ ├── qstash-logs.png │ ├── redis-get-2.png │ ├── redis-increment.png │ ├── redis-credentials.png │ ├── qstash-import-button.png │ └── qstash-request-builder.png ├── qstash │ ├── log.png │ ├── publish.png │ ├── aws │ │ ├── upload.png │ │ ├── overview.png │ │ ├── api-gateway.png │ │ ├── create_url.png │ │ ├── environment.png │ │ ├── create_lambda.png │ │ ├── python │ │ │ ├── overview.png │ │ │ └── create_lambda.png │ │ └── verify-integration.png │ ├── callbacks.png │ ├── debuglogs.png │ ├── reqcatcher.png │ ├── rest_token.png │ ├── roll_keys.png │ ├── schedule.png │ ├── vercel_env.png │ ├── create_topic.png │ ├── dlq-console.png │ ├── flowcontrol.png │ ├── message_cost.png │ ├── reset_token.png │ ├── callback_dark.png │ ├── create_endpoint.png │ ├── deno_deploy_env.png │ ├── qstash-benefits.png │ ├── local-mode-qstash.png │ ├── qstash-bgjob-dark.png │ ├── qstash-workflows.png │ ├── signing-key-logic.png │ ├── qstash-bgjob-light.png │ ├── quickstart-qstash-ui.png │ ├── parallel-workflow-runs.png │ ├── qstash-workflows-flat.png │ ├── vercel-log-quickstart.png │ ├── qstash-workflows-cancel.png │ ├── quickstart-qstash-result.png │ ├── python-quickstart-schedule.png │ ├── nextjs-quickstart-result-gif.gif │ ├── qstash-workflows-error-detail.png │ └── qstash-workflows-step-detail.png ├── square-dark.png ├── teams │ ├── teams.png │ ├── change-team.png │ ├── team-create.png │ ├── team-member.png │ ├── team-page.png │ └── team-member-create.png ├── workflow │ ├── dlq.png │ ├── invoke.png │ ├── rate_1.png │ ├── rate_2.png │ ├── rate_3.png │ ├── restart.png │ ├── resume.png │ ├── parallelism_1.png │ ├── parallelism_2.png │ ├── parallelism_3.png │ ├── automatic_retry.png │ ├── parallel_steps.png │ ├── failure_function.png │ ├── flow_control_ex_1.png │ ├── flow_control_ex_2.png │ ├── flow_control_ex_3.png │ ├── local-mode-workflow.png │ ├── agents │ │ ├── logs │ │ │ ├── logs-chain.png │ │ │ ├── logs-multi.png │ │ │ ├── logs-single.png │ │ │ ├── logs-manager.png │ │ │ ├── logs-parallel.png │ │ │ ├── logs-evaluator.png │ │ │ └── logs-getting-started.png │ │ └── diagram │ │ │ ├── evaluator-diagram.png │ │ │ ├── parallel-diagram.png │ │ │ ├── orchestrator-diagram.png │ │ │ └── prompt-chain-diagram.png │ ├── retry_failure_callback.png │ ├── failing_failure_function.png │ ├── non-workflow-endpoint-log.png │ ├── failure_callback_state_filter.png │ ├── troubleshooting │ │ └── vercel-deployment-protection.png │ └── quickstarts │ │ └── nextjs-fastapi │ │ └── workflow-nextjs-fastapi.png ├── clickhouse │ ├── ss1.png │ ├── ss2.png │ ├── ss3.png │ ├── ss4.png │ ├── ss5.png │ ├── ss6.png │ ├── ss7.png │ ├── ss8.png │ ├── ss9.png │ └── ss10.png ├── decodable │ ├── dec1.png │ ├── dec2.png │ ├── dec3.png │ ├── dec4.png │ ├── dec5.png │ └── dec41.png ├── graphql │ ├── config.png │ └── browser.png ├── qstash-dlq │ └── dlq.png ├── restapi │ ├── tokens.png │ └── acl-resttoken.png ├── twitter-image.jpg ├── auditlogs │ └── audit.png ├── awslambda │ ├── success.png │ ├── success2.png │ ├── success3.png │ ├── functioncode.png │ └── createfunction.png ├── digitalocean │ ├── img.png │ ├── img2.png │ └── img3.png ├── enterprise │ ├── kafka2.png │ └── redis.png ├── examples │ ├── consumer.png │ ├── producer.png │ ├── restapi.png │ ├── gcp-error.png │ ├── histogram.jpg │ ├── notif │ │ ├── cli.png │ │ └── cover-notif.jpg │ ├── upstash_java.png │ ├── apprunner │ │ ├── build.png │ │ ├── config.png │ │ ├── source.png │ │ └── aws_app_runner.png │ ├── redis_cloud_run.jpg │ └── tutorial-cloudflare-workers.png ├── metrics │ ├── datasize.png │ ├── keyspace.png │ ├── latency.png │ ├── connections.png │ ├── hitsmisses.png │ ├── throughput.png │ ├── current-month.png │ ├── databaselist.png │ ├── datasize5days.png │ └── requests5days.png ├── pro-support │ └── image.png ├── redis-deno │ ├── create.png │ └── deploy.png ├── risingwave │ ├── output.png │ ├── create-user.png │ ├── list-rows.png │ ├── source-view.png │ └── create-cluster.png ├── schedule_workflow.png ├── search │ ├── add-data.png │ ├── add-document.png │ ├── first-search.png │ ├── select-plan.png │ ├── create-database.png │ ├── readonly_token.png │ └── database-created.png ├── upgradedb │ └── upgrade.png ├── autoscale │ └── autoscale.png ├── durability │ └── storage.png ├── mcp │ ├── cursor-new-mcp.png │ ├── cursor-mcp-settings.png │ └── create-upstash-api-key.png ├── pinot │ ├── pinot-opened.png │ ├── query-result.png │ ├── send-message.png │ ├── table-created.png │ └── table-page-opened.png ├── prometheus │ ├── headers.png │ ├── success.png │ ├── datasource.png │ ├── configuration.png │ ├── datasource-final.png │ ├── monitoring-token.png │ ├── grafana-dashboard.png │ ├── configuration-qstash.png │ └── grafana-qstash-dashboard.png ├── ratelimit │ ├── dashboard.png │ ├── denylist.png │ └── navigate.png ├── redis-gcloud │ ├── basics.png │ └── environment.png ├── setbudget │ └── setbudget.png ├── timeplus │ ├── 0-add-data.png │ ├── create-sink.png │ ├── output-topic.png │ ├── post-message.png │ ├── query-stream.png │ ├── 2-source-step-1.png │ ├── 3-source-step-2.png │ ├── 4-source-step-4.png │ ├── streaming-etl-sql.png │ ├── 1-choose-kafka-source.png │ └── 3-source-step-preview.png ├── compare │ └── comparecosts.png ├── eviction │ ├── configuration.png │ └── create-database.png ├── getting_started │ ├── charts.png │ ├── create.png │ ├── database.png │ ├── create-global.png │ └── global-db-welcome.png ├── logo-dark-transparent.png ├── next-quickstart │ ├── curl.png │ └── credentials.png ├── rockset │ ├── kafka-connect.png │ ├── sink-connector.png │ ├── source-selection.png │ ├── create-integration.png │ ├── integration-active.png │ ├── configure-collection.png │ └── ingest-transformation.png ├── startree │ ├── data-modeling.png │ ├── query-result.png │ ├── sample-data.png │ ├── produce-message.png │ ├── create-a-dataset.png │ ├── open-query-console.png │ ├── create-a-connection.png │ ├── create-kafka-connection.png │ └── select-kafka-connection.png ├── addpaymentmethod │ ├── ccform.png │ └── cardlist.png ├── edgecaching │ └── edge-caching.png ├── global-replication │ ├── reads.png │ ├── writes.png │ └── replication.png ├── ipallowlist │ └── ipallowlist.png ├── materialize │ ├── send-message.png │ └── receive-message.png ├── multizone │ └── multizone-arch.jpg ├── qstash-workflow │ ├── run-view.png │ ├── wrangler.png │ ├── dashboard.png │ ├── events │ │ ├── wait.png │ │ └── resume.png │ ├── local-dev.png │ ├── w-concept.png │ ├── qstash_token.png │ ├── workflow_dlq.png │ ├── ai-sdk │ │ ├── with-tool.png │ │ └── without-tool.png │ ├── automatic_retry.png │ ├── cancel_workflow.png │ ├── create_schedule.png │ ├── ngrok_mac_setup.png │ ├── workflow-concept.png │ ├── hono_local_request.png │ ├── schedule_workflow.png │ ├── workflow_dlq_debug.png │ ├── nextjs_local_request.png │ ├── ngrok_windows_setup.png │ ├── qstash_signing_keys.png │ └── workers_local_request.png ├── quix │ ├── helloquix-pipeline.png │ ├── helloquix-template.png │ ├── quix-upstash-topics.png │ ├── quix-upstash-broker-option.png │ └── quix-upstash-broker-settings.png ├── redis-realtime-chat │ └── chat.png ├── sdk │ └── ratelimit │ │ └── dashboard.png ├── vector │ ├── getstarted │ │ ├── usage.png │ │ ├── browser.png │ │ ├── select_plan.png │ │ └── create_index.png │ ├── create_index_with_model.png │ ├── integrations │ │ ├── flowise │ │ │ ├── flow.png │ │ │ ├── cache-node.png │ │ │ ├── vector-node.png │ │ │ └── chat-memory-node.png │ │ ├── ai-sdk │ │ │ ├── console.png │ │ │ ├── rag-chatbot-1.png │ │ │ └── rag-chatbot-2.png │ │ └── langflow │ │ │ ├── final-workflow.png │ │ │ └── insert-workflow.png │ └── tutorials │ │ └── vector-console.png ├── vercel │ ├── integration_init.png │ ├── vercel_dashboard.png │ ├── integration_dashboard.png │ ├── integration_redis_create.png │ └── vercel_integration_create.png ├── access-anywhere │ └── restclient.png ├── auto-upgrade │ ├── configuration.png │ └── create-database.png ├── backuprestore │ ├── export-button.png │ ├── import-button.png │ ├── restore-modal.png │ ├── import-from-rdb.png │ ├── import-from-backup.png │ ├── restore-from-table.png │ ├── backup-export-button.png │ └── daily-backup-toggle.png ├── costexplorer │ └── costexplorer.png ├── developerapi │ ├── api-key-create.png │ ├── api-key-list.png │ └── api-key-secret.png ├── vercel-edge-tinybird │ ├── tiny1.png │ ├── tiny2.png │ ├── tiny3.png │ ├── tiny4.png │ ├── tiny5.png │ ├── tiny6.png │ ├── tiny7.png │ ├── tiny8.png │ └── Kafka_Usecases_-_web_analytics_w__vercel.png ├── consistency │ └── strongconsistency.png ├── paymenthistory │ └── paymenthistory.png ├── realtime │ └── vercel-fluid-enabled.png ├── awsmarketplace │ ├── AWS-marketplace-1.png │ ├── AWS-marketplace-2.png │ └── AWS-marketplace-3.png ├── cloudflare-integration │ ├── overview.png │ ├── secrets.png │ ├── add-binding.png │ ├── redis-secrets.png │ ├── secrets-store.png │ ├── kafka-credentials.png │ ├── qstash-credentials.png │ ├── redis-add-binding.png │ ├── redis-credentials.png │ ├── redis-secrets-store.png │ ├── kafka-add-integration.png │ ├── redis-add-integration.png │ └── qstash-add-integration.png ├── coin-price-list │ └── coin-price-list.png ├── integration │ ├── oauth2-integration.png │ └── upstash-integration-diagram.png ├── troubleshooting │ └── rest │ │ ├── console_rest_api.png │ │ └── console_upstash_redis.png ├── credential-protection │ ├── reset-credentials.png │ ├── save-credentials.png │ └── activate-protect-credentials.png └── bg-color-codes.mdx ├── vector ├── overall │ ├── compare.mdx │ ├── llms-txt.mdx │ └── pricing.mdx ├── sdk │ ├── gosdk.mdx │ ├── semantic-cache-js.mdx │ └── semantic-cache-py.mdx ├── examples.mdx └── sdks │ └── ts │ └── contributing.mdx ├── logo ├── upstash-dark-bg.png ├── upstash-white-bg.png ├── upstash-icon-dark-bg.png └── upstash-icon-white-bg.png ├── .gitignore ├── redis ├── overall │ ├── pricingold.mdx │ ├── redis.mdx │ ├── pythonredis.mdx │ ├── llms-txt.mdx │ └── ratelimit.mdx ├── howto │ └── ioredisnote.mdx ├── quickstarts │ └── ioredisnote.mdx ├── tutorials │ └── cloudflare_websockets_redis.mdx ├── help │ ├── legal.mdx │ ├── uptime.mdx │ └── support.mdx ├── sdks │ ├── py │ │ └── commands │ │ │ ├── auth │ │ │ ├── ping.mdx │ │ │ └── echo.mdx │ │ │ ├── server │ │ │ ├── dbsize.mdx │ │ │ ├── flushdb.mdx │ │ │ └── flushall.mdx │ │ │ ├── scripts │ │ │ ├── script_flush.mdx │ │ │ ├── script_load.mdx │ │ │ └── script_exists.mdx │ │ │ ├── generic │ │ │ ├── touch.mdx │ │ │ ├── randomkey.mdx │ │ │ ├── unlink.mdx │ │ │ ├── persist.mdx │ │ │ ├── exists.mdx │ │ │ ├── del.mdx │ │ │ └── type.mdx │ │ │ ├── stream │ │ │ ├── xlen.mdx │ │ │ └── xgroup_destroy.mdx │ │ │ ├── set │ │ │ ├── scard.mdx │ │ │ ├── smembers.mdx │ │ │ ├── sdiff.mdx │ │ │ ├── sinter.mdx │ │ │ ├── sunion.mdx │ │ │ ├── sismember.mdx │ │ │ ├── srem.mdx │ │ │ └── sadd.mdx │ │ │ ├── list │ │ │ ├── llen.mdx │ │ │ └── lpush.mdx │ │ │ ├── zset │ │ │ ├── zscore.mdx │ │ │ ├── zcard.mdx │ │ │ ├── zmscore.mdx │ │ │ ├── zrem.mdx │ │ │ └── zrevrank.mdx │ │ │ ├── bitmap │ │ │ ├── getbit.mdx │ │ │ └── setbit.mdx │ │ │ ├── string │ │ │ ├── get.mdx │ │ │ ├── getdel.mdx │ │ │ ├── mset.mdx │ │ │ ├── append.mdx │ │ │ ├── getset.mdx │ │ │ ├── decr.mdx │ │ │ ├── incr.mdx │ │ │ ├── msetnx.mdx │ │ │ └── mget.mdx │ │ │ ├── json │ │ │ ├── del.mdx │ │ │ ├── forget.mdx │ │ │ ├── arrlen.mdx │ │ │ ├── strlen.mdx │ │ │ ├── mset.mdx │ │ │ ├── toggle.mdx │ │ │ ├── objkeys.mdx │ │ │ ├── objlen.mdx │ │ │ ├── resp.mdx │ │ │ ├── type.mdx │ │ │ ├── clear.mdx │ │ │ ├── get.mdx │ │ │ └── mget.mdx │ │ │ ├── hash │ │ │ ├── hkeys.mdx │ │ │ ├── hgetall.mdx │ │ │ ├── hvals.mdx │ │ │ ├── hlen.mdx │ │ │ ├── hstrlen.mdx │ │ │ ├── hmset.mdx │ │ │ ├── hexists.mdx │ │ │ └── hdel.mdx │ │ │ └── pubsub │ │ │ └── publish.mdx │ ├── ts │ │ ├── commands │ │ │ ├── auth │ │ │ │ ├── ping.mdx │ │ │ │ └── echo.mdx │ │ │ ├── generic │ │ │ │ ├── randomkey.mdx │ │ │ │ ├── touch.mdx │ │ │ │ ├── persist.mdx │ │ │ │ ├── rename.mdx │ │ │ │ ├── ttl.mdx │ │ │ │ ├── pttl.mdx │ │ │ │ ├── type.mdx │ │ │ │ ├── exists.mdx │ │ │ │ ├── renamenx.mdx │ │ │ │ ├── del.mdx │ │ │ │ ├── unlink.mdx │ │ │ │ ├── expire.mdx │ │ │ │ └── pexpire.mdx │ │ │ ├── server │ │ │ │ ├── dbsize.mdx │ │ │ │ ├── flushdb.mdx │ │ │ │ └── flushall.mdx │ │ │ ├── stream │ │ │ │ └── xlen.mdx │ │ │ ├── list │ │ │ │ └── llen.mdx │ │ │ ├── set │ │ │ │ ├── scard.mdx │ │ │ │ ├── smembers.mdx │ │ │ │ ├── sdiff.mdx │ │ │ │ ├── sunion.mdx │ │ │ │ ├── sinter.mdx │ │ │ │ ├── sismember.mdx │ │ │ │ └── srem.mdx │ │ │ ├── zset │ │ │ │ ├── zpopmax.mdx │ │ │ │ ├── zpopmin.mdx │ │ │ │ ├── zrank.mdx │ │ │ │ ├── zrevrank.mdx │ │ │ │ ├── zcard.mdx │ │ │ │ ├── zrem.mdx │ │ │ │ └── zscore.mdx │ │ │ ├── string │ │ │ │ ├── append.mdx │ │ │ │ ├── getdel.mdx │ │ │ │ ├── getset.mdx │ │ │ │ ├── mset.mdx │ │ │ │ ├── msetnx.mdx │ │ │ │ └── get.mdx │ │ │ ├── scripts │ │ │ │ ├── script_exists.mdx │ │ │ │ ├── script_load.mdx │ │ │ │ └── script_flush.mdx │ │ │ ├── bitmap │ │ │ │ ├── getbit.mdx │ │ │ │ └── setbit.mdx │ │ │ ├── json │ │ │ │ ├── del.mdx │ │ │ │ ├── forget.mdx │ │ │ │ ├── arrlen.mdx │ │ │ │ ├── toggle.mdx │ │ │ │ ├── objkeys.mdx │ │ │ │ ├── objlen.mdx │ │ │ │ ├── type.mdx │ │ │ │ └── clear.mdx │ │ │ ├── hash │ │ │ │ ├── hdel.mdx │ │ │ │ ├── hkeys.mdx │ │ │ │ ├── hlen.mdx │ │ │ │ ├── hgetall.mdx │ │ │ │ ├── hvals.mdx │ │ │ │ ├── hstrlen.mdx │ │ │ │ ├── hset.mdx │ │ │ │ └── hget.mdx │ │ │ └── pubsub │ │ │ │ ├── publish.mdx │ │ │ │ └── subscribe.mdx │ │ └── retries.mdx │ └── ratelimit-py │ │ └── overview.mdx └── troubleshooting │ ├── max_key_size_exceeded.mdx │ ├── econn_reset.mdx │ └── max_requests_limit.mdx ├── qstash ├── overall │ ├── llms-txt.mdx │ ├── pricing.mdx │ └── roadmap.mdx ├── sdks │ ├── py │ │ ├── examples │ │ │ ├── overview.mdx │ │ │ ├── receiver.mdx │ │ │ ├── keys.mdx │ │ │ └── events.mdx │ │ └── overview.mdx │ └── ts │ │ ├── examples │ │ ├── overview.mdx │ │ └── receiver.mdx │ │ └── overview.mdx └── howto │ └── reset-token.mdx ├── common ├── trials.mdx ├── help │ ├── uptime.mdx │ ├── legal.mdx │ └── support.mdx └── account │ ├── paymenthistory.mdx │ ├── developerapi.mdx │ └── createaccount.mdx └── style.css /search/quickstarts/nextjs.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_snippets/support-snippet.mdx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /workflow/howto/flow-control.mdx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.mp4 filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /devops/terraform.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | url: /devops/terraform/overview 3 | --- 4 | -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/favicon.png -------------------------------------------------------------------------------- /img/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/code.png -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/favicon.png -------------------------------------------------------------------------------- /img/eco-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/eco-icon.png -------------------------------------------------------------------------------- /img/datadog/team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/team.png -------------------------------------------------------------------------------- /img/docusaurus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/docusaurus.png -------------------------------------------------------------------------------- /img/globaldb/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/globaldb/map.png -------------------------------------------------------------------------------- /img/n8n/redis-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-1.png -------------------------------------------------------------------------------- /img/n8n/redis-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-2.png -------------------------------------------------------------------------------- /img/n8n/redis-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-3.png -------------------------------------------------------------------------------- /img/n8n/redis-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-4.png -------------------------------------------------------------------------------- /img/n8n/webhook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/webhook.png -------------------------------------------------------------------------------- /img/qstash/log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/log.png -------------------------------------------------------------------------------- /img/square-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/square-dark.png -------------------------------------------------------------------------------- /img/teams/teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/teams.png -------------------------------------------------------------------------------- /img/workflow/dlq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/dlq.png -------------------------------------------------------------------------------- /search/.keep: -------------------------------------------------------------------------------- 1 | // This file ensures the search directory is tracked by version control. -------------------------------------------------------------------------------- /vector/overall/compare.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Compare 3 | --- 4 | 5 | 6 | // todo melek -------------------------------------------------------------------------------- /img/clickhouse/ss1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss1.png -------------------------------------------------------------------------------- /img/clickhouse/ss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss2.png -------------------------------------------------------------------------------- /img/clickhouse/ss3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss3.png -------------------------------------------------------------------------------- /img/clickhouse/ss4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss4.png -------------------------------------------------------------------------------- /img/clickhouse/ss5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss5.png -------------------------------------------------------------------------------- /img/clickhouse/ss6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss6.png -------------------------------------------------------------------------------- /img/clickhouse/ss7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss7.png -------------------------------------------------------------------------------- /img/clickhouse/ss8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss8.png -------------------------------------------------------------------------------- /img/clickhouse/ss9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss9.png -------------------------------------------------------------------------------- /img/decodable/dec1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec1.png -------------------------------------------------------------------------------- /img/decodable/dec2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec2.png -------------------------------------------------------------------------------- /img/decodable/dec3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec3.png -------------------------------------------------------------------------------- /img/decodable/dec4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec4.png -------------------------------------------------------------------------------- /img/decodable/dec5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec5.png -------------------------------------------------------------------------------- /img/globaldb/map2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/globaldb/map2.png -------------------------------------------------------------------------------- /img/graphql/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/graphql/config.png -------------------------------------------------------------------------------- /img/n8n/redis-get.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-get.png -------------------------------------------------------------------------------- /img/qstash-dlq/dlq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-dlq/dlq.png -------------------------------------------------------------------------------- /img/qstash/publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/publish.png -------------------------------------------------------------------------------- /img/restapi/tokens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/restapi/tokens.png -------------------------------------------------------------------------------- /img/twitter-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/twitter-image.jpg -------------------------------------------------------------------------------- /img/auditlogs/audit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/auditlogs/audit.png -------------------------------------------------------------------------------- /img/awslambda/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awslambda/success.png -------------------------------------------------------------------------------- /img/clickhouse/ss10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/clickhouse/ss10.png -------------------------------------------------------------------------------- /img/datadog/personal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/personal.png -------------------------------------------------------------------------------- /img/decodable/dec41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/decodable/dec41.png -------------------------------------------------------------------------------- /img/digitalocean/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/digitalocean/img.png -------------------------------------------------------------------------------- /img/digitalocean/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/digitalocean/img2.png -------------------------------------------------------------------------------- /img/digitalocean/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/digitalocean/img3.png -------------------------------------------------------------------------------- /img/enterprise/kafka2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/enterprise/kafka2.png -------------------------------------------------------------------------------- /img/enterprise/redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/enterprise/redis.png -------------------------------------------------------------------------------- /img/examples/consumer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/consumer.png -------------------------------------------------------------------------------- /img/examples/producer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/producer.png -------------------------------------------------------------------------------- /img/examples/restapi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/restapi.png -------------------------------------------------------------------------------- /img/graphql/browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/graphql/browser.png -------------------------------------------------------------------------------- /img/metrics/datasize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/datasize.png -------------------------------------------------------------------------------- /img/metrics/keyspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/keyspace.png -------------------------------------------------------------------------------- /img/metrics/latency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/latency.png -------------------------------------------------------------------------------- /img/n8n/qstash-curl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-curl.png -------------------------------------------------------------------------------- /img/n8n/qstash-http.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-http.png -------------------------------------------------------------------------------- /img/n8n/qstash-import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-import.png -------------------------------------------------------------------------------- /img/n8n/qstash-logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-logs.png -------------------------------------------------------------------------------- /img/n8n/redis-get-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-get-2.png -------------------------------------------------------------------------------- /img/pro-support/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pro-support/image.png -------------------------------------------------------------------------------- /img/qstash/aws/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/upload.png -------------------------------------------------------------------------------- /img/qstash/callbacks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/callbacks.png -------------------------------------------------------------------------------- /img/qstash/debuglogs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/debuglogs.png -------------------------------------------------------------------------------- /img/qstash/reqcatcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/reqcatcher.png -------------------------------------------------------------------------------- /img/qstash/rest_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/rest_token.png -------------------------------------------------------------------------------- /img/qstash/roll_keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/roll_keys.png -------------------------------------------------------------------------------- /img/qstash/schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/schedule.png -------------------------------------------------------------------------------- /img/qstash/vercel_env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/vercel_env.png -------------------------------------------------------------------------------- /img/redis-deno/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/redis-deno/create.png -------------------------------------------------------------------------------- /img/redis-deno/deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/redis-deno/deploy.png -------------------------------------------------------------------------------- /img/risingwave/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/risingwave/output.png -------------------------------------------------------------------------------- /img/schedule_workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/schedule_workflow.png -------------------------------------------------------------------------------- /img/search/add-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/add-data.png -------------------------------------------------------------------------------- /img/teams/change-team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/change-team.png -------------------------------------------------------------------------------- /img/teams/team-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/team-create.png -------------------------------------------------------------------------------- /img/teams/team-member.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/team-member.png -------------------------------------------------------------------------------- /img/teams/team-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/team-page.png -------------------------------------------------------------------------------- /img/upgradedb/upgrade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/upgradedb/upgrade.png -------------------------------------------------------------------------------- /img/workflow/invoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/invoke.png -------------------------------------------------------------------------------- /img/workflow/rate_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/rate_1.png -------------------------------------------------------------------------------- /img/workflow/rate_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/rate_2.png -------------------------------------------------------------------------------- /img/workflow/rate_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/rate_3.png -------------------------------------------------------------------------------- /img/workflow/restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/restart.png -------------------------------------------------------------------------------- /img/workflow/resume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/resume.png -------------------------------------------------------------------------------- /logo/upstash-dark-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/logo/upstash-dark-bg.png -------------------------------------------------------------------------------- /logo/upstash-white-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/logo/upstash-white-bg.png -------------------------------------------------------------------------------- /img/autoscale/autoscale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/autoscale/autoscale.png -------------------------------------------------------------------------------- /img/awslambda/success2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awslambda/success2.png -------------------------------------------------------------------------------- /img/awslambda/success3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awslambda/success3.png -------------------------------------------------------------------------------- /img/datadog/connect-acc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/connect-acc.png -------------------------------------------------------------------------------- /img/durability/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/durability/storage.png -------------------------------------------------------------------------------- /img/examples/gcp-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/gcp-error.png -------------------------------------------------------------------------------- /img/examples/histogram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/histogram.jpg -------------------------------------------------------------------------------- /img/examples/notif/cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/notif/cli.png -------------------------------------------------------------------------------- /img/mcp/cursor-new-mcp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/mcp/cursor-new-mcp.png -------------------------------------------------------------------------------- /img/metrics/connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/connections.png -------------------------------------------------------------------------------- /img/metrics/hitsmisses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/hitsmisses.png -------------------------------------------------------------------------------- /img/metrics/throughput.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/throughput.png -------------------------------------------------------------------------------- /img/n8n/redis-increment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-increment.png -------------------------------------------------------------------------------- /img/pinot/pinot-opened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pinot/pinot-opened.png -------------------------------------------------------------------------------- /img/pinot/query-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pinot/query-result.png -------------------------------------------------------------------------------- /img/pinot/send-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pinot/send-message.png -------------------------------------------------------------------------------- /img/pinot/table-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pinot/table-created.png -------------------------------------------------------------------------------- /img/prometheus/headers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/headers.png -------------------------------------------------------------------------------- /img/prometheus/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/success.png -------------------------------------------------------------------------------- /img/qstash/aws/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/overview.png -------------------------------------------------------------------------------- /img/qstash/create_topic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/create_topic.png -------------------------------------------------------------------------------- /img/qstash/dlq-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/dlq-console.png -------------------------------------------------------------------------------- /img/qstash/flowcontrol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/flowcontrol.png -------------------------------------------------------------------------------- /img/qstash/message_cost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/message_cost.png -------------------------------------------------------------------------------- /img/qstash/reset_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/reset_token.png -------------------------------------------------------------------------------- /img/ratelimit/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/ratelimit/dashboard.png -------------------------------------------------------------------------------- /img/ratelimit/denylist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/ratelimit/denylist.png -------------------------------------------------------------------------------- /img/ratelimit/navigate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/ratelimit/navigate.png -------------------------------------------------------------------------------- /img/redis-gcloud/basics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/redis-gcloud/basics.png -------------------------------------------------------------------------------- /img/search/add-document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/add-document.png -------------------------------------------------------------------------------- /img/search/first-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/first-search.png -------------------------------------------------------------------------------- /img/search/select-plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/select-plan.png -------------------------------------------------------------------------------- /img/setbudget/setbudget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/setbudget/setbudget.png -------------------------------------------------------------------------------- /img/timeplus/0-add-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/0-add-data.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **/.DS_Store 2 | .idea/* 3 | .gitignore 4 | package.json 5 | package-lock.json 6 | node_modules/* -------------------------------------------------------------------------------- /img/awslambda/functioncode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awslambda/functioncode.png -------------------------------------------------------------------------------- /img/compare/comparecosts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/compare/comparecosts.png -------------------------------------------------------------------------------- /img/datadog/installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/installation.png -------------------------------------------------------------------------------- /img/eviction/configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/eviction/configuration.png -------------------------------------------------------------------------------- /img/examples/upstash_java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/upstash_java.png -------------------------------------------------------------------------------- /img/getting_started/charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/getting_started/charts.png -------------------------------------------------------------------------------- /img/getting_started/create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/getting_started/create.png -------------------------------------------------------------------------------- /img/globaldb/regionselect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/globaldb/regionselect.png -------------------------------------------------------------------------------- /img/logo-dark-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/logo-dark-transparent.png -------------------------------------------------------------------------------- /img/metrics/current-month.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/current-month.png -------------------------------------------------------------------------------- /img/metrics/databaselist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/databaselist.png -------------------------------------------------------------------------------- /img/metrics/datasize5days.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/datasize5days.png -------------------------------------------------------------------------------- /img/metrics/requests5days.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/metrics/requests5days.png -------------------------------------------------------------------------------- /img/n8n/redis-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/redis-credentials.png -------------------------------------------------------------------------------- /img/next-quickstart/curl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/next-quickstart/curl.png -------------------------------------------------------------------------------- /img/prometheus/datasource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/datasource.png -------------------------------------------------------------------------------- /img/qstash/aws/api-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/api-gateway.png -------------------------------------------------------------------------------- /img/qstash/aws/create_url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/create_url.png -------------------------------------------------------------------------------- /img/qstash/aws/environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/environment.png -------------------------------------------------------------------------------- /img/qstash/callback_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/callback_dark.png -------------------------------------------------------------------------------- /img/qstash/create_endpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/create_endpoint.png -------------------------------------------------------------------------------- /img/qstash/deno_deploy_env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/deno_deploy_env.png -------------------------------------------------------------------------------- /img/qstash/qstash-benefits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-benefits.png -------------------------------------------------------------------------------- /img/restapi/acl-resttoken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/restapi/acl-resttoken.png -------------------------------------------------------------------------------- /img/risingwave/create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/risingwave/create-user.png -------------------------------------------------------------------------------- /img/risingwave/list-rows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/risingwave/list-rows.png -------------------------------------------------------------------------------- /img/risingwave/source-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/risingwave/source-view.png -------------------------------------------------------------------------------- /img/rockset/kafka-connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/kafka-connect.png -------------------------------------------------------------------------------- /img/rockset/sink-connector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/sink-connector.png -------------------------------------------------------------------------------- /img/search/create-database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/create-database.png -------------------------------------------------------------------------------- /img/search/readonly_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/readonly_token.png -------------------------------------------------------------------------------- /img/startree/data-modeling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/data-modeling.png -------------------------------------------------------------------------------- /img/startree/query-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/query-result.png -------------------------------------------------------------------------------- /img/startree/sample-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/sample-data.png -------------------------------------------------------------------------------- /img/timeplus/create-sink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/create-sink.png -------------------------------------------------------------------------------- /img/timeplus/output-topic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/output-topic.png -------------------------------------------------------------------------------- /img/timeplus/post-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/post-message.png -------------------------------------------------------------------------------- /img/timeplus/query-stream.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/query-stream.png -------------------------------------------------------------------------------- /img/workflow/parallelism_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/parallelism_1.png -------------------------------------------------------------------------------- /img/workflow/parallelism_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/parallelism_2.png -------------------------------------------------------------------------------- /img/workflow/parallelism_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/parallelism_3.png -------------------------------------------------------------------------------- /logo/upstash-icon-dark-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/logo/upstash-icon-dark-bg.png -------------------------------------------------------------------------------- /logo/upstash-icon-white-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/logo/upstash-icon-white-bg.png -------------------------------------------------------------------------------- /vector/sdk/gosdk.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Go SDK 3 | url: https://github.com/upstash/vector-go/tree/main 4 | --- -------------------------------------------------------------------------------- /_snippets/snippet-example.mdx: -------------------------------------------------------------------------------- 1 | ## My Snippet 2 | 3 | This is an example of a reusable snippet 4 | -------------------------------------------------------------------------------- /img/addpaymentmethod/ccform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/addpaymentmethod/ccform.png -------------------------------------------------------------------------------- /img/awslambda/createfunction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awslambda/createfunction.png -------------------------------------------------------------------------------- /img/datadog/integration-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/integration-tab.png -------------------------------------------------------------------------------- /img/edgecaching/edge-caching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/edgecaching/edge-caching.png -------------------------------------------------------------------------------- /img/eviction/create-database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/eviction/create-database.png -------------------------------------------------------------------------------- /img/examples/apprunner/build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/apprunner/build.png -------------------------------------------------------------------------------- /img/examples/redis_cloud_run.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/redis_cloud_run.jpg -------------------------------------------------------------------------------- /img/getting_started/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/getting_started/database.png -------------------------------------------------------------------------------- /img/global-replication/reads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/global-replication/reads.png -------------------------------------------------------------------------------- /img/ipallowlist/ipallowlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/ipallowlist/ipallowlist.png -------------------------------------------------------------------------------- /img/materialize/send-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/materialize/send-message.png -------------------------------------------------------------------------------- /img/mcp/cursor-mcp-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/mcp/cursor-mcp-settings.png -------------------------------------------------------------------------------- /img/multizone/multizone-arch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/multizone/multizone-arch.jpg -------------------------------------------------------------------------------- /img/n8n/qstash-import-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-import-button.png -------------------------------------------------------------------------------- /img/pinot/table-page-opened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/pinot/table-page-opened.png -------------------------------------------------------------------------------- /img/prometheus/configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/configuration.png -------------------------------------------------------------------------------- /img/qstash-workflow/run-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/run-view.png -------------------------------------------------------------------------------- /img/qstash-workflow/wrangler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/wrangler.png -------------------------------------------------------------------------------- /img/qstash/aws/create_lambda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/create_lambda.png -------------------------------------------------------------------------------- /img/qstash/local-mode-qstash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/local-mode-qstash.png -------------------------------------------------------------------------------- /img/qstash/qstash-bgjob-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-bgjob-dark.png -------------------------------------------------------------------------------- /img/qstash/qstash-workflows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-workflows.png -------------------------------------------------------------------------------- /img/qstash/signing-key-logic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/signing-key-logic.png -------------------------------------------------------------------------------- /img/quix/helloquix-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/quix/helloquix-pipeline.png -------------------------------------------------------------------------------- /img/quix/helloquix-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/quix/helloquix-template.png -------------------------------------------------------------------------------- /img/quix/quix-upstash-topics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/quix/quix-upstash-topics.png -------------------------------------------------------------------------------- /img/redis-gcloud/environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/redis-gcloud/environment.png -------------------------------------------------------------------------------- /img/redis-realtime-chat/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/redis-realtime-chat/chat.png -------------------------------------------------------------------------------- /img/rockset/source-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/source-selection.png -------------------------------------------------------------------------------- /img/sdk/ratelimit/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/sdk/ratelimit/dashboard.png -------------------------------------------------------------------------------- /img/search/database-created.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/search/database-created.png -------------------------------------------------------------------------------- /img/startree/produce-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/produce-message.png -------------------------------------------------------------------------------- /img/teams/team-member-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/teams/team-member-create.png -------------------------------------------------------------------------------- /img/timeplus/2-source-step-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/2-source-step-1.png -------------------------------------------------------------------------------- /img/timeplus/3-source-step-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/3-source-step-2.png -------------------------------------------------------------------------------- /img/timeplus/4-source-step-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/4-source-step-4.png -------------------------------------------------------------------------------- /img/vector/getstarted/usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/getstarted/usage.png -------------------------------------------------------------------------------- /img/vercel/integration_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel/integration_init.png -------------------------------------------------------------------------------- /img/vercel/vercel_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel/vercel_dashboard.png -------------------------------------------------------------------------------- /img/workflow/automatic_retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/automatic_retry.png -------------------------------------------------------------------------------- /img/workflow/parallel_steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/parallel_steps.png -------------------------------------------------------------------------------- /workflow/sdk/workflow-js.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JavaScript SDK 3 | url: https://github.com/upstash/workflow-js 4 | --- -------------------------------------------------------------------------------- /workflow/sdk/workflow-py.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Python SDK 3 | url: https://github.com/upstash/workflow-py 4 | --- -------------------------------------------------------------------------------- /img/access-anywhere/restclient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/access-anywhere/restclient.png -------------------------------------------------------------------------------- /img/addpaymentmethod/cardlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/addpaymentmethod/cardlist.png -------------------------------------------------------------------------------- /img/auto-upgrade/configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/auto-upgrade/configuration.png -------------------------------------------------------------------------------- /img/backuprestore/export-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/export-button.png -------------------------------------------------------------------------------- /img/backuprestore/import-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/import-button.png -------------------------------------------------------------------------------- /img/backuprestore/restore-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/restore-modal.png -------------------------------------------------------------------------------- /img/costexplorer/costexplorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/costexplorer/costexplorer.png -------------------------------------------------------------------------------- /img/datadog/upstash-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/upstash-dashboard.png -------------------------------------------------------------------------------- /img/developerapi/api-key-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/developerapi/api-key-create.png -------------------------------------------------------------------------------- /img/developerapi/api-key-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/developerapi/api-key-list.png -------------------------------------------------------------------------------- /img/developerapi/api-key-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/developerapi/api-key-secret.png -------------------------------------------------------------------------------- /img/examples/apprunner/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/apprunner/config.png -------------------------------------------------------------------------------- /img/examples/apprunner/source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/apprunner/source.png -------------------------------------------------------------------------------- /img/examples/notif/cover-notif.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/notif/cover-notif.jpg -------------------------------------------------------------------------------- /img/global-replication/writes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/global-replication/writes.png -------------------------------------------------------------------------------- /img/materialize/receive-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/materialize/receive-message.png -------------------------------------------------------------------------------- /img/mcp/create-upstash-api-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/mcp/create-upstash-api-key.png -------------------------------------------------------------------------------- /img/n8n/qstash-request-builder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/n8n/qstash-request-builder.png -------------------------------------------------------------------------------- /img/next-quickstart/credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/next-quickstart/credentials.png -------------------------------------------------------------------------------- /img/prometheus/datasource-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/datasource-final.png -------------------------------------------------------------------------------- /img/prometheus/monitoring-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/monitoring-token.png -------------------------------------------------------------------------------- /img/qstash-workflow/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/dashboard.png -------------------------------------------------------------------------------- /img/qstash-workflow/events/wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/events/wait.png -------------------------------------------------------------------------------- /img/qstash-workflow/local-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/local-dev.png -------------------------------------------------------------------------------- /img/qstash-workflow/w-concept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/w-concept.png -------------------------------------------------------------------------------- /img/qstash/aws/python/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/python/overview.png -------------------------------------------------------------------------------- /img/qstash/qstash-bgjob-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-bgjob-light.png -------------------------------------------------------------------------------- /img/qstash/quickstart-qstash-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/quickstart-qstash-ui.png -------------------------------------------------------------------------------- /img/risingwave/create-cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/risingwave/create-cluster.png -------------------------------------------------------------------------------- /img/rockset/create-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/create-integration.png -------------------------------------------------------------------------------- /img/rockset/integration-active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/integration-active.png -------------------------------------------------------------------------------- /img/startree/create-a-dataset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/create-a-dataset.png -------------------------------------------------------------------------------- /img/startree/open-query-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/open-query-console.png -------------------------------------------------------------------------------- /img/timeplus/streaming-etl-sql.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/streaming-etl-sql.png -------------------------------------------------------------------------------- /img/vector/getstarted/browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/getstarted/browser.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny1.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny2.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny3.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny4.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny5.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny6.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny7.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/tiny8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/tiny8.png -------------------------------------------------------------------------------- /img/workflow/failure_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/failure_function.png -------------------------------------------------------------------------------- /img/workflow/flow_control_ex_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/flow_control_ex_1.png -------------------------------------------------------------------------------- /img/workflow/flow_control_ex_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/flow_control_ex_2.png -------------------------------------------------------------------------------- /img/workflow/flow_control_ex_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/flow_control_ex_3.png -------------------------------------------------------------------------------- /redis/overall/pricingold.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pricing & Limits 3 | url: "https://upstash.com/pricing" 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /img/auto-upgrade/create-database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/auto-upgrade/create-database.png -------------------------------------------------------------------------------- /img/backuprestore/import-from-rdb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/import-from-rdb.png -------------------------------------------------------------------------------- /img/consistency/strongconsistency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/consistency/strongconsistency.png -------------------------------------------------------------------------------- /img/getting_started/create-global.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/getting_started/create-global.png -------------------------------------------------------------------------------- /img/paymenthistory/paymenthistory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/paymenthistory/paymenthistory.png -------------------------------------------------------------------------------- /img/prometheus/grafana-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/grafana-dashboard.png -------------------------------------------------------------------------------- /img/qstash-workflow/events/resume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/events/resume.png -------------------------------------------------------------------------------- /img/qstash-workflow/qstash_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/qstash_token.png -------------------------------------------------------------------------------- /img/qstash-workflow/workflow_dlq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/workflow_dlq.png -------------------------------------------------------------------------------- /img/qstash/aws/verify-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/verify-integration.png -------------------------------------------------------------------------------- /img/qstash/parallel-workflow-runs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/parallel-workflow-runs.png -------------------------------------------------------------------------------- /img/qstash/qstash-workflows-flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-workflows-flat.png -------------------------------------------------------------------------------- /img/qstash/vercel-log-quickstart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/vercel-log-quickstart.png -------------------------------------------------------------------------------- /img/realtime/vercel-fluid-enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/realtime/vercel-fluid-enabled.png -------------------------------------------------------------------------------- /img/rockset/configure-collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/configure-collection.png -------------------------------------------------------------------------------- /img/rockset/ingest-transformation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/rockset/ingest-transformation.png -------------------------------------------------------------------------------- /img/startree/create-a-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/create-a-connection.png -------------------------------------------------------------------------------- /img/vector/getstarted/select_plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/getstarted/select_plan.png -------------------------------------------------------------------------------- /img/vercel/integration_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel/integration_dashboard.png -------------------------------------------------------------------------------- /img/workflow/local-mode-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/local-mode-workflow.png -------------------------------------------------------------------------------- /vector/sdk/semantic-cache-js.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Semantic Cache JS 3 | url: https://github.com/upstash/semantic-cache 4 | --- -------------------------------------------------------------------------------- /img/awsmarketplace/AWS-marketplace-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awsmarketplace/AWS-marketplace-1.png -------------------------------------------------------------------------------- /img/awsmarketplace/AWS-marketplace-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awsmarketplace/AWS-marketplace-2.png -------------------------------------------------------------------------------- /img/awsmarketplace/AWS-marketplace-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/awsmarketplace/AWS-marketplace-3.png -------------------------------------------------------------------------------- /img/backuprestore/import-from-backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/import-from-backup.png -------------------------------------------------------------------------------- /img/backuprestore/restore-from-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/restore-from-table.png -------------------------------------------------------------------------------- /img/cloudflare-integration/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/overview.png -------------------------------------------------------------------------------- /img/cloudflare-integration/secrets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/secrets.png -------------------------------------------------------------------------------- /img/coin-price-list/coin-price-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/coin-price-list/coin-price-list.png -------------------------------------------------------------------------------- /img/datadog/upstash-qstash-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/datadog/upstash-qstash-dashboard.png -------------------------------------------------------------------------------- /img/global-replication/replication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/global-replication/replication.png -------------------------------------------------------------------------------- /img/integration/oauth2-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/integration/oauth2-integration.png -------------------------------------------------------------------------------- /img/prometheus/configuration-qstash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/configuration-qstash.png -------------------------------------------------------------------------------- /img/qstash-workflow/ai-sdk/with-tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/ai-sdk/with-tool.png -------------------------------------------------------------------------------- /img/qstash-workflow/automatic_retry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/automatic_retry.png -------------------------------------------------------------------------------- /img/qstash-workflow/cancel_workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/cancel_workflow.png -------------------------------------------------------------------------------- /img/qstash-workflow/create_schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/create_schedule.png -------------------------------------------------------------------------------- /img/qstash-workflow/ngrok_mac_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/ngrok_mac_setup.png -------------------------------------------------------------------------------- /img/qstash-workflow/workflow-concept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/workflow-concept.png -------------------------------------------------------------------------------- /img/qstash/aws/python/create_lambda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/aws/python/create_lambda.png -------------------------------------------------------------------------------- /img/qstash/qstash-workflows-cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-workflows-cancel.png -------------------------------------------------------------------------------- /img/qstash/quickstart-qstash-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/quickstart-qstash-result.png -------------------------------------------------------------------------------- /img/quix/quix-upstash-broker-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/quix/quix-upstash-broker-option.png -------------------------------------------------------------------------------- /img/startree/create-kafka-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/create-kafka-connection.png -------------------------------------------------------------------------------- /img/startree/select-kafka-connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/startree/select-kafka-connection.png -------------------------------------------------------------------------------- /img/timeplus/1-choose-kafka-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/1-choose-kafka-source.png -------------------------------------------------------------------------------- /img/timeplus/3-source-step-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/timeplus/3-source-step-preview.png -------------------------------------------------------------------------------- /img/vector/create_index_with_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/create_index_with_model.png -------------------------------------------------------------------------------- /img/vector/getstarted/create_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/getstarted/create_index.png -------------------------------------------------------------------------------- /img/vector/integrations/flowise/flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/flowise/flow.png -------------------------------------------------------------------------------- /img/vector/tutorials/vector-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/tutorials/vector-console.png -------------------------------------------------------------------------------- /img/vercel/integration_redis_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel/integration_redis_create.png -------------------------------------------------------------------------------- /img/vercel/vercel_integration_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel/vercel_integration_create.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-chain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-chain.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-multi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-multi.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-single.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-single.png -------------------------------------------------------------------------------- /img/workflow/retry_failure_callback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/retry_failure_callback.png -------------------------------------------------------------------------------- /redis/overall/redis.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Typescript SDK 3 | url: https://upstash.com/docs/redis/sdks/ts/getstarted 4 | --- 5 | -------------------------------------------------------------------------------- /img/backuprestore/backup-export-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/backup-export-button.png -------------------------------------------------------------------------------- /img/backuprestore/daily-backup-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/backuprestore/daily-backup-toggle.png -------------------------------------------------------------------------------- /img/cloudflare-integration/add-binding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/add-binding.png -------------------------------------------------------------------------------- /img/examples/apprunner/aws_app_runner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/apprunner/aws_app_runner.png -------------------------------------------------------------------------------- /img/getting_started/global-db-welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/getting_started/global-db-welcome.png -------------------------------------------------------------------------------- /img/qstash-workflow/hono_local_request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/hono_local_request.png -------------------------------------------------------------------------------- /img/qstash-workflow/schedule_workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/schedule_workflow.png -------------------------------------------------------------------------------- /img/qstash-workflow/workflow_dlq_debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/workflow_dlq_debug.png -------------------------------------------------------------------------------- /img/qstash/python-quickstart-schedule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/python-quickstart-schedule.png -------------------------------------------------------------------------------- /img/quix/quix-upstash-broker-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/quix/quix-upstash-broker-settings.png -------------------------------------------------------------------------------- /img/vector/integrations/ai-sdk/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/ai-sdk/console.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-manager.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-parallel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-parallel.png -------------------------------------------------------------------------------- /img/workflow/failing_failure_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/failing_failure_function.png -------------------------------------------------------------------------------- /img/workflow/non-workflow-endpoint-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/non-workflow-endpoint-log.png -------------------------------------------------------------------------------- /redis/overall/pythonredis.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Python SDK 3 | url: https://upstash.com/docs/redis/sdks/py/gettingstarted 4 | --- 5 | -------------------------------------------------------------------------------- /vector/sdk/semantic-cache-py.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Semantic Cache Python 3 | url: https://github.com/upstash/semantic-cache-py 4 | --- -------------------------------------------------------------------------------- /img/cloudflare-integration/redis-secrets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/redis-secrets.png -------------------------------------------------------------------------------- /img/cloudflare-integration/secrets-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/secrets-store.png -------------------------------------------------------------------------------- /img/examples/tutorial-cloudflare-workers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/examples/tutorial-cloudflare-workers.png -------------------------------------------------------------------------------- /img/prometheus/grafana-qstash-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/prometheus/grafana-qstash-dashboard.png -------------------------------------------------------------------------------- /img/qstash-workflow/ai-sdk/without-tool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/ai-sdk/without-tool.png -------------------------------------------------------------------------------- /img/qstash-workflow/nextjs_local_request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/nextjs_local_request.png -------------------------------------------------------------------------------- /img/qstash-workflow/ngrok_windows_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/ngrok_windows_setup.png -------------------------------------------------------------------------------- /img/qstash-workflow/qstash_signing_keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/qstash_signing_keys.png -------------------------------------------------------------------------------- /img/qstash-workflow/workers_local_request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash-workflow/workers_local_request.png -------------------------------------------------------------------------------- /img/qstash/nextjs-quickstart-result-gif.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/nextjs-quickstart-result-gif.gif -------------------------------------------------------------------------------- /img/qstash/qstash-workflows-error-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-workflows-error-detail.png -------------------------------------------------------------------------------- /img/qstash/qstash-workflows-step-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/qstash/qstash-workflows-step-detail.png -------------------------------------------------------------------------------- /img/troubleshooting/rest/console_rest_api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/troubleshooting/rest/console_rest_api.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-evaluator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-evaluator.png -------------------------------------------------------------------------------- /img/credential-protection/reset-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/credential-protection/reset-credentials.png -------------------------------------------------------------------------------- /img/credential-protection/save-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/credential-protection/save-credentials.png -------------------------------------------------------------------------------- /img/integration/upstash-integration-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/integration/upstash-integration-diagram.png -------------------------------------------------------------------------------- /img/vector/integrations/flowise/cache-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/flowise/cache-node.png -------------------------------------------------------------------------------- /img/vector/integrations/flowise/vector-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/flowise/vector-node.png -------------------------------------------------------------------------------- /img/workflow/failure_callback_state_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/failure_callback_state_filter.png -------------------------------------------------------------------------------- /qstash/overall/llms-txt.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: llms.txt 3 | url: https://context7.com/context7/upstash-qstash/llms.txt?tokens=60000 4 | --- 5 | -------------------------------------------------------------------------------- /redis/overall/llms-txt.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: llms.txt 3 | url: https://context7.com/context7/upstash-redis/llms.txt?tokens=200000 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /redis/overall/ratelimit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Rate Limit SDK 3 | url: https://upstash.com/docs/redis/sdks/ratelimit-ts/gettingstarted 4 | --- 5 | -------------------------------------------------------------------------------- /vector/overall/llms-txt.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: llms.txt 3 | url: https://context7.com/context7/upstash-vector/llms.txt?tokens=50000 4 | --- 5 | -------------------------------------------------------------------------------- /workflow/llms-txt.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: llms.txt 3 | url: https://context7.com/context7/upstash-workflow/llms.txt?tokens=60000 4 | --- 5 | 6 | -------------------------------------------------------------------------------- /img/bg-color-codes.mdx: -------------------------------------------------------------------------------- 1 | Recommended Background Color Transition: 2 | 3 | Primary: #34D399 (Emerald Green) 4 | Secondary: #00E9A3 (Cyan Green) 5 | -------------------------------------------------------------------------------- /img/cloudflare-integration/kafka-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/kafka-credentials.png -------------------------------------------------------------------------------- /img/cloudflare-integration/qstash-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/qstash-credentials.png -------------------------------------------------------------------------------- /img/cloudflare-integration/redis-add-binding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/redis-add-binding.png -------------------------------------------------------------------------------- /img/cloudflare-integration/redis-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/redis-credentials.png -------------------------------------------------------------------------------- /img/cloudflare-integration/redis-secrets-store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/redis-secrets-store.png -------------------------------------------------------------------------------- /img/troubleshooting/rest/console_upstash_redis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/troubleshooting/rest/console_upstash_redis.png -------------------------------------------------------------------------------- /img/vector/integrations/ai-sdk/rag-chatbot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/ai-sdk/rag-chatbot-1.png -------------------------------------------------------------------------------- /img/vector/integrations/ai-sdk/rag-chatbot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/ai-sdk/rag-chatbot-2.png -------------------------------------------------------------------------------- /img/workflow/agents/diagram/evaluator-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/diagram/evaluator-diagram.png -------------------------------------------------------------------------------- /img/workflow/agents/diagram/parallel-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/diagram/parallel-diagram.png -------------------------------------------------------------------------------- /img/workflow/agents/logs/logs-getting-started.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/logs/logs-getting-started.png -------------------------------------------------------------------------------- /img/cloudflare-integration/kafka-add-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/kafka-add-integration.png -------------------------------------------------------------------------------- /img/cloudflare-integration/redis-add-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/redis-add-integration.png -------------------------------------------------------------------------------- /img/vector/integrations/flowise/chat-memory-node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/flowise/chat-memory-node.png -------------------------------------------------------------------------------- /img/vector/integrations/langflow/final-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/langflow/final-workflow.png -------------------------------------------------------------------------------- /img/vector/integrations/langflow/insert-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vector/integrations/langflow/insert-workflow.png -------------------------------------------------------------------------------- /img/workflow/agents/diagram/orchestrator-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/diagram/orchestrator-diagram.png -------------------------------------------------------------------------------- /img/workflow/agents/diagram/prompt-chain-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/agents/diagram/prompt-chain-diagram.png -------------------------------------------------------------------------------- /img/cloudflare-integration/qstash-add-integration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/cloudflare-integration/qstash-add-integration.png -------------------------------------------------------------------------------- /_snippets/trials.mdx: -------------------------------------------------------------------------------- 1 | 2 | If you want to try Upstash paid and pro plans, we can offer Free 3 | Trials. Email us at support@upstash.com 4 | 5 | -------------------------------------------------------------------------------- /_snippets/redis/ioredisnote.mdx: -------------------------------------------------------------------------------- 1 | 2 | This example uses ioredis, you can copy the connection string from the 3 | **Node** tab in the console. 4 | 5 | -------------------------------------------------------------------------------- /img/credential-protection/activate-protect-credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/credential-protection/activate-protect-credentials.png -------------------------------------------------------------------------------- /img/workflow/troubleshooting/vercel-deployment-protection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/troubleshooting/vercel-deployment-protection.png -------------------------------------------------------------------------------- /img/workflow/quickstarts/nextjs-fastapi/workflow-nextjs-fastapi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/workflow/quickstarts/nextjs-fastapi/workflow-nextjs-fastapi.png -------------------------------------------------------------------------------- /img/vercel-edge-tinybird/Kafka_Usecases_-_web_analytics_w__vercel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upstash/docs/main/img/vercel-edge-tinybird/Kafka_Usecases_-_web_analytics_w__vercel.png -------------------------------------------------------------------------------- /common/trials.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Trials 3 | --- 4 | 5 | 6 | If you want to try Upstash paid and pro plans, we can offer **Free 7 | Trials**. Email us at support@upstash.com 8 | 9 | -------------------------------------------------------------------------------- /redis/howto/ioredisnote.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ioredis note 3 | --- 4 | 5 | 6 | This example uses ioredis, you can copy the connection string from the `Node` 7 | tab in the console. 8 | 9 | -------------------------------------------------------------------------------- /redis/quickstarts/ioredisnote.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ioredis note 3 | --- 4 | 5 | 6 | This example uses ioredis, you can copy the connection string from the `Node` 7 | tab in the console. 8 | 9 | -------------------------------------------------------------------------------- /redis/tutorials/cloudflare_websockets_redis.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Cloudflare Workers with Websockets and Redis" 3 | url: "https://github.com/upstash/examples/tree/main/examples/cloudflare-websockets" 4 | --- 5 | -------------------------------------------------------------------------------- /qstash/overall/pricing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pricing & Limits 3 | url: https://upstash.com/pricing/qstash 4 | --- 5 | 6 | Please check our [pricing page](https://upstash.com/pricing/qstash) for the most up-to-date information on pricing and limits. -------------------------------------------------------------------------------- /search/overall/pricing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pricing & Limits 3 | url: https://upstash.com/pricing/search 4 | --- 5 | 6 | Please check our [pricing page](https://upstash.com/pricing/search) for the most up-to-date information on pricing and limits. -------------------------------------------------------------------------------- /vector/overall/pricing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Pricing & Limits 3 | url: https://upstash.com/pricing/vector 4 | --- 5 | 6 | Please check our [pricing page](https://upstash.com/pricing/vector) for the most up-to-date information on pricing and limits. -------------------------------------------------------------------------------- /vector/examples.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Examples 3 | sidebarTitle: Examples Index 4 | --- 5 | 6 | 12 | -------------------------------------------------------------------------------- /_snippets/legal-snippet.mdx: -------------------------------------------------------------------------------- 1 | ## Upstash Legal Documents 2 | 3 | - [Upstash Terms of Service](https://upstash.com/trust/terms.pdf) 4 | - [Upstash Privacy Policy](https://upstash.com/trust/privacy.pdf) 5 | - [Upstash Subcontractors](https://upstash.com/trust/subprocessors.pdf) 6 | -------------------------------------------------------------------------------- /qstash/sdks/py/examples/overview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | --- 4 | 5 | These are example usages of each method in the QStash SDK. You can also reference the 6 | [examples repo](https://github.com/upstash/qstash-py/tree/main/examples) and [API examples](/qstash/overall/apiexamples) for more. 7 | -------------------------------------------------------------------------------- /qstash/sdks/ts/examples/overview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | --- 4 | 5 | These are example usages of each method in the QStash SDK. You can also reference the 6 | [examples repo](https://github.com/upstash/sdk-qstash-ts/tree/main/examples) and [API examples](/qstash/overall/apiexamples) for more. 7 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | #intro-video { 2 | aspect-ratio: 16/9; 3 | width: 100%; 4 | max-width: 720px; 5 | height: auto; 6 | border-radius: 8px; 7 | margin: 2rem auto; 8 | } 9 | 10 | @container (max-width: 720px) { 11 | #intro-video { 12 | width: 100%; 13 | margin: 1rem auto; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /redis/help/legal.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Legal 3 | --- 4 | 5 | ## Upstash Legal Documents 6 | 7 | - [Upstash Terms of Service](https://upstash.com/trust/terms.pdf) 8 | - [Upstash Privacy Policy](https://upstash.com/trust/privacy.pdf) 9 | - [Upstash Subcontractors](https://upstash.com/trust/subprocessors.pdf) 10 | -------------------------------------------------------------------------------- /workflow/agents/examples.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Examples" 3 | --- 4 | 5 | Explore our collection of examples to learn how to build robust agent systems. From architectural patterns to real-world implementations, these examples demonstrate the full potential of our Agents API. 6 | 7 | 8 | -------------------------------------------------------------------------------- /_snippets/uptime-snippet.mdx: -------------------------------------------------------------------------------- 1 | ## Status Page 2 | 3 | You can track the uptime status of Upstash databases in 4 | [Upstash Status Page](https://status.upstash.com) 5 | 6 | ## Latency Monitor 7 | 8 | You can see the average latencies for different regions in 9 | [Upstash Latency Monitoring](https://latency.upstash.com) page 10 | -------------------------------------------------------------------------------- /redis/help/uptime.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Uptime Monitor 3 | --- 4 | 5 | ## Status Page 6 | 7 | You can track the uptime status of Upstash databases in 8 | [Upstash Status Page](https://status.upstash.com) 9 | 10 | ## Latency Monitor 11 | 12 | You can see the average latencies for different regions in 13 | [Upstash Latency Monitoring](https://latency.upstash.com) page 14 | -------------------------------------------------------------------------------- /_snippets/redis/redisclientnote.mdx: -------------------------------------------------------------------------------- 1 | 2 | This tutorial uses [@upstash/redis](/redis/sdks/ts/overview) which is designed 3 | for serverless runtimes for efficient connection handling. You can use your 4 | favorite Redis client, but you may have to deal with connection issues as 5 | described [here](https://upstash.com/blog/serverless-database-connections). 6 | 7 | -------------------------------------------------------------------------------- /common/help/uptime.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Uptime Monitor 3 | --- 4 | 5 | ## Status Page 6 | 7 | You can track the uptime status of Upstash databases in 8 | [Upstash Status Page](https://status.upstash.com) 9 | 10 | ## Latency Monitor 11 | 12 | You can see the average latencies for different regions in 13 | [Upstash Latency Monitoring](https://latency.upstash.com) page 14 | -------------------------------------------------------------------------------- /search/sdks/ts/commands/reset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reset 3 | --- 4 | 5 | The `reset` method allows you to clear all documents from a particular index. 6 | 7 | ## Response 8 | 9 | `'Success'` if the database is successfully reset. 10 | 11 | 12 | 13 | ```typescript Basic 14 | const responseReset = await index.reset(); 15 | // 'Success' 16 | ``` 17 | 18 | 19 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/auth/ping.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PING 3 | description: Send a ping to the server and get a response if the server is alive. 4 | --- 5 | 6 | ## Arguments 7 | 8 | No arguments 9 | 10 | ## Response 11 | 12 | 13 | `PONG` 14 | 15 | 16 | 17 | ```py Example 18 | assert redis.ping() == "PONG" 19 | ``` 20 | 21 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/server/dbsize.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: DBSIZE 3 | description: Count the number of keys in the database. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | This command has no arguments 10 | 11 | ## Response 12 | 13 | 14 | The number of keys in the database 15 | 16 | 17 | 18 | ```py Example 19 | redis.dbsize() 20 | ``` 21 | 22 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/scripts/script_flush.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT FLUSH 3 | description: Removes all scripts from the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | Whether to perform the flush asynchronously or synchronously. 10 | 11 | 12 | 13 | ```py Example 14 | redis.script_flush(flush_type="ASYNC") 15 | ``` 16 | 17 | 18 | -------------------------------------------------------------------------------- /common/help/legal.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Legal 3 | --- 4 | 5 | ## Upstash Legal Documents 6 | 7 | - [Upstash Terms of Service](https://upstash.com/trust/terms.pdf) 8 | - [Upstash Privacy Policy](https://upstash.com/trust/privacy.pdf) 9 | - [Upstash Subcontractors](https://upstash.com/trust/subprocessors.pdf) 10 | - [Context7 Addendum](https://upstash.com/trust/context7addendum.pdf) 11 | - [Data Processing Addendum](https://upstash.com/static/trust/dpa.pdf) 12 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/auth/ping.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PING 3 | description: Send a ping to the server and get a response if the server is alive. 4 | --- 5 | 6 | ## Arguments 7 | 8 | No arguments 9 | 10 | ## Response 11 | 12 | 13 | `PONG` 14 | 15 | 16 | 17 | ```ts Example 18 | const response = await redis.ping(); 19 | console.log(response); // "PONG" 20 | ``` 21 | 22 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/randomkey.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: RANDOMKEY 3 | description: Returns a random key from database 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | No arguments 10 | 11 | ## Response 12 | 13 | 14 | A random key from database, or `null` when database is empty. 15 | 16 | 17 | 18 | ```ts Example 19 | const key = await redis.randomkey(); 20 | ``` 21 | 22 | -------------------------------------------------------------------------------- /workflow/roadmap.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Roadmap" 3 | url: https://github.com/orgs/upstash/discussions 4 | --- 5 | 6 | 7 | We have moved the roadmap and the changelog to [Github Discussions](https://github.com/orgs/upstash/discussions) starting from October 2025.Now you can follow `In Progress` features. You can see that your `Feature Requests` are recorded. You can vote for them and comment your specific use-cases to shape the feature to your needs. 8 | 9 | -------------------------------------------------------------------------------- /qstash/overall/roadmap.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Roadmap" 3 | url: https://github.com/orgs/upstash/discussions 4 | --- 5 | 6 | 7 | We have moved the roadmap and the changelog to [Github Discussions](https://github.com/orgs/upstash/discussions) starting from October 2025.Now you can follow `In Progress` features. You can see that your `Feature Requests` are recorded. You can vote for them and comment your specific use-cases to shape the feature to your needs. 8 | 9 | -------------------------------------------------------------------------------- /workflow/features/flow-control/monitor.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Monitoring" 3 | --- 4 | 5 | You can monitor wait list size of your flow control key's from the console `FlowControl` tab. 6 | 7 | 8 | 9 | 10 | 11 | Also you can get the same info using the REST API. 12 | - [List All Flow Control Keys](/workflow/rest/flow-control/list). 13 | - [Single Flow Control Key](/workflow/rest/flow-control/get). 14 | 15 | -------------------------------------------------------------------------------- /common/account/paymenthistory.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Payment History 3 | --- 4 | 5 | The Payment History page gives you information about your payments. You can open your 6 | payment history in the left menu under Account > Payment History. Here an example 7 | report: 8 | 9 | 10 | 11 | 12 | 13 | You can download receipt. If one of your payments failed, you can retry your 14 | payment on this page. 15 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/server/dbsize.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: DBSIZE 3 | description: Count the number of keys in the database. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | This command has no arguments 10 | 11 | ## Response 12 | 13 | 14 | The number of keys in the database 15 | 16 | 17 | 18 | ```ts Example 19 | const keys = await redis.dbsize(); 20 | console.log(keys) // 20 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/touch.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TOUCH 3 | description: Alters the last access time of one or more keys 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | One or more keys. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The number of keys that were touched. 16 | 17 | 18 | 19 | ```py Example 20 | redis.touch("key1", "key2", "key3") 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /redis/troubleshooting/max_key_size_exceeded.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ERR max key size exceeded 3 | --- 4 | 5 | ### Symptom 6 | 7 | The client gets an exception similar to: 8 | 9 | ``` 10 | ReplyError: ERR max key size exceeded. Limit: X bytes, Actual: Z bytes 11 | ``` 12 | 13 | ### Diagnosis 14 | 15 | Size of the key in the request exceeds the max key size limit, which is `32Kb`. 16 | 17 | ### Solution 18 | 19 | This is a hardcoded limit and cannot be configured per database. You should 20 | reduce the key size. 21 | -------------------------------------------------------------------------------- /redis/sdks/ratelimit-py/overview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | --- 4 | 5 | `upstash-ratelimit` is a connectionless rate limiting library for Python, 6 | designed to be used in serverless environments such as: 7 | 8 | - AWS Lambda 9 | - Vercel Serverless 10 | - Google Cloud Functions 11 | - and other environments where HTTP is preferred over TCP. 12 | 13 | The SDK is currently compatible with Python 3.8 and above. 14 | 15 | You can find the Github Repository [here](https://github.com/upstash/ratelimit-python). 16 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/server/flushdb.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: FLUSHDB 3 | --- 4 | 5 | 6 | 7 | Deletes all keys permanently. Use with caution! 8 | 9 | ## Arguments 10 | 11 | 12 | Whether to perform the operation asynchronously. 13 | Defaults to synchronous. 14 | 15 | 16 | 17 | 18 | 19 | ```ts Sync 20 | await redis.flushdb(); 21 | ``` 22 | ```ts Async 23 | await redis.flushdb({async: true}) 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/server/flushdb.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: FLUSHDB 3 | --- 4 | 5 | 6 | 7 | Deletes all keys permanently. Use with caution! 8 | 9 | ## Arguments 10 | 11 | 12 | Whether to perform the operation asynchronously. 13 | Defaults to synchronous. 14 | 15 | 16 | 17 | 18 | 19 | ```py Sync 20 | redis.flushall() 21 | ``` 22 | ```py Async 23 | redis.flushall(flush_type="ASYNC") 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/server/flushall.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: FLUSHALL 3 | --- 4 | 5 | 6 | 7 | Deletes all keys permanently. Use with caution! 8 | 9 | ## Arguments 10 | 11 | 12 | Whether to perform the operation asynchronously. 13 | Defaults to synchronous. 14 | 15 | 16 | 17 | 18 | 19 | ```ts Sync 20 | await redis.flushall(); 21 | ``` 22 | ```ts Async 23 | await redis.flushall({async: true}) 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/server/flushall.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: FLUSHALL 3 | --- 4 | 5 | 6 | 7 | Deletes all keys permanently. Use with caution! 8 | 9 | ## Arguments 10 | 11 | 12 | Whether to perform the operation asynchronously. 13 | Defaults to synchronous. 14 | 15 | 16 | 17 | 18 | 19 | ```py Sync 20 | redis.flushall() 21 | ``` 22 | ```py Async 23 | redis.flushall(flush_type="ASYNC") 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/auth/echo.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ECHO 3 | --- 4 | 5 | Returns a message back to you. Useful for debugging the connection. 6 | 7 | ## Arguments 8 | 9 | 10 | A message to send to the server. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The same message you sent. 17 | 18 | 19 | 20 | ```py Example 21 | assert redis.echo("hello world") == "hello world" 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/touch.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TOUCH 3 | description: Alters the last access time of one or more keys 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that were touched. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.touch("key1", "key2", "key3"); 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/stream/xlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: XLEN 3 | description: Returns the number of entries inside a stream. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the stream. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The number of entries in the stream. Returns 0 if the stream does not exist. 16 | 17 | 18 | 19 | ```py Get stream length 20 | result = redis.xlen("mystream") 21 | ``` 22 | -------------------------------------------------------------------------------- /common/account/developerapi.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Developer API 3 | --- 4 | 5 | Using Upstash API, you can develop applications that can create and manage 6 | Upstash databases and Upstash Vector Indexes. You can automate everything that 7 | you can do in the console. To use developer API, you need to create an API key 8 | in the console. 9 | 10 | Note: The Developer API is only available to native Upstash accounts. Accounts created via third-party platforms like Vercel or Fly.io are not supported. 11 | 12 | See [DevOps](/devops) for details. 13 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/scard.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCARD 3 | description: Return how many members are in a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | How many members are in the set. 17 | 18 | 19 | 20 | ```py Example 21 | redis.sadd("key", "a", "b", "c"); 22 | 23 | assert redis.scard("key") == 3 24 | ``` 25 | 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/smembers.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SMEMBERS 3 | description: Return all the members of a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The members of the set. 16 | 17 | 18 | 19 | ```py Example 20 | redis.sadd("set", "a", "b", "c"); 21 | assert redis.smembers("set") == {"a", "b", "c"} 22 | ``` 23 | 24 | 25 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/list/llen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: LLEN 3 | description: Returns the length of the list stored at key. 4 | --- 5 | 6 | 7 | 8 | ## Arguments 9 | 10 | 11 | The key of the list. 12 | 13 | 14 | ## Response 15 | 16 | 17 | The length of the list at key. 18 | 19 | 20 | 21 | ```py Example 22 | redis.rpush("key", "a", "b", "c") 23 | 24 | assert redis.llen("key") == 3 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/stream/xlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: XLEN 3 | description: Returns the number of entries inside a stream. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the stream. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The number of entries in the stream. Returns 0 if the stream does not exist. 16 | 17 | 18 | 19 | ```ts Get stream length 20 | const result = await redis.xlen("mystream"); 21 | ``` 22 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/randomkey.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: RANDOMKEY 3 | description: Returns a random key from database 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | No arguments 10 | 11 | ## Response 12 | 13 | 14 | A random key from database, or `None` when database is empty. 15 | 16 | 17 | 18 | ```py Example 19 | assert redis.randomkey() is None 20 | 21 | redis.set("key1", "Hello") 22 | redis.set("key2", "World") 23 | 24 | assert redis.randomkey() is not None 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/unlink.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: UNLINK 3 | description: Removes the specified keys. A key is ignored if it does not exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to unlink. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that were unlinked. 17 | 18 | 19 | 20 | ```py Basic 21 | assert redis.unlink("key1", "key2", "key3") == 3 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/scripts/script_load.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT LOAD 3 | description: Load the specified Lua script into the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The script to load. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The sha1 of the script. 16 | 17 | 18 | 19 | ```py Example 20 | sha1 = redis.script_load("return 1") 21 | 22 | assert redis.evalsha(sha1) == 1 23 | ``` 24 | 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/persist.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PERSIST 3 | description: Remove any timeout set on the key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to persist 11 | 12 | 13 | ## Response 14 | 15 | 16 | `1` if the timeout was removed, `0` if `key` does not exist or does not have an associated timeout. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.persist(key); 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /redis/help/support.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Support & Contact Us" 3 | --- 4 | 5 | ## Community 6 | 7 | [Upstash Discord Channel](https://upstash.com/discord) is the best way to 8 | interact with the community. 9 | 10 | ## Team 11 | 12 | You can contact the team 13 | via [support@upstash.com](mailto:support@upstash.com) for technical support as 14 | well as questions and feedback. 15 | 16 | ## Follow Us 17 | 18 | Follow us at [X](https://x.com/upstash). 19 | 20 | ## Professional Support 21 | 22 | Get [Professional Support](/common/help/prosupport) from the Upstash team. 23 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/zset/zscore.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZSCORE 3 | description: Returns the scores of a member. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | A member of the sortedset. 17 | 18 | 19 | 20 | 21 | 22 | ```py Example 23 | redis.zadd("myset", {"a": 1, "b": 2, "c": 3}) 24 | 25 | assert redis.zscore("myset", "a") == 1 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/rename.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: RENAME 3 | description: Rename a key 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The original key. 11 | 12 | 13 | 14 | 15 | A new name for the key. 16 | 17 | 18 | ## Response 19 | 20 | 21 | `OK` 22 | 23 | 24 | 25 | ```ts Example 26 | await redis.rename("old", "new"); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/ttl.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TTL 3 | description: Return the expiration in seconds of a key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of seconds until this expires, negative if the key does not exist or does not have an expiration set. 17 | 18 | 19 | 20 | ```ts Example 21 | const seconds = await redis.ttl(key); 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/auth/echo.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ECHO 3 | --- 4 | 5 | Returns a message back to you. Useful for debugging the connection. 6 | 7 | ## Arguments 8 | 9 | 10 | A message to send to the server. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The same message you sent. 17 | 18 | 19 | 20 | ```ts Example 21 | const response = await redis.echo("hello world"); 22 | console.log(response); // "hello world" 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/pttl.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PTTL 3 | description: Return the expiration in milliseconds of a key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of milliseconds until this expires, negative if the key does not exist or does not have an expiration set. 17 | 18 | 19 | 20 | ```ts Example 21 | const millis = await redis.pttl(key); 22 | ``` 23 | 24 | -------------------------------------------------------------------------------- /common/account/createaccount.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Create an Account 3 | --- 4 | 5 | You can sign up for Upstash using your Amazon, Github or Google accounts. Alternatively, if you prefer not to use these authentication providers or want to sign up with a corporate email address, you can also sign up using email and password. 6 | 7 | 8 | 9 | We do not access your information other than: 10 | 11 | - Your email 12 | - Your name 13 | - Your profile picture and we never share your information with third parties. 14 | 15 | 16 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/zset/zcard.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZCARD 3 | description: Returns the number of elements in the sorted set stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of elements in the sorted set. 17 | 18 | 19 | 20 | ```py Example 21 | redis.zadd("myset", {"one": 1, "two": 2, "three": 3}) 22 | 23 | assert redis.zcard("myset") == 3 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/zset/zmscore.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZMSCORE 3 | description: Returns the scores of multiple members. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the sorted set. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The members of the sorted set. 17 | 18 | 19 | 20 | ```py Example 21 | redis.zadd("myset", {"a": 1, "b": 2, "c": 3}) 22 | 23 | assert redis.zlexcount("myset", "-", "+") == 3 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/list/llen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: LLEN 3 | description: Returns the length of the list stored at key. 4 | --- 5 | 6 | 7 | 8 | ## Arguments 9 | 10 | 11 | The key of the list. 12 | 13 | 14 | ## Response 15 | 16 | 17 | The length of the list at key. 18 | 19 | 20 | 21 | ```ts Example 22 | await redis.rpush("key", "a", "b", "c"); 23 | const length = await redis.llen("key"); 24 | console.log(length); // 3 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/scard.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCARD 3 | description: Return how many members are in a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | How many members are in the set. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.sadd("key", "a", "b", "c"); 22 | const cardinality = await redis.scard("key"); 23 | console.log(cardinality); // 3 24 | ``` 25 | 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/smembers.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SMEMBERS 3 | description: Return all the members of a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The members of the set. 16 | 17 | 18 | 19 | ```ts Example 20 | await redis.sadd("set", "a", "b", "c"); 21 | const members = await redis.smembers("set"); 22 | console.log(members); // ["a", "b", "c"] 23 | ``` 24 | 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/bitmap/getbit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETBIT 3 | description: Retrieve a single bit. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the bitset 11 | 12 | 13 | 14 | Specify the offset at which to get the bit. 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The bit value stored at offset. 22 | 23 | 24 | 25 | ```py Example 26 | bit = redis.getbit(key, 4) 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GET 3 | description: Return the value of the specified key or `None` if the key doesn't exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The response is the value stored at the key or `None` if the key doesn't exist. 17 | 18 | 19 | 20 | 21 | 22 | ```py Example 23 | redis.set("key", "value") 24 | 25 | assert redis.get("key") == "value" 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/type.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TYPE 3 | description: Get the type of a key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The type of the key. 17 | 18 | One of `string` | `list` | `set` | `zset` | `hash` | `none` 19 | 20 | 21 | 22 | ```ts Example 23 | await redis.set("key", "value"); 24 | const t = await redis.type("key"); 25 | console.log(t) // "string" 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zpopmax.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZPOPMAX 3 | description: Removes and returns up to count members with the highest scores in the sorted set stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the sorted set 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of elements removed. Defaults to 1. 17 | 18 | 19 | 20 | 21 | 22 | ```ts Example 23 | const popped = await redis.zpopmax("key", 4); 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zpopmin.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZPOPMIN 3 | description: Removes and returns up to count members with the lowest scores in the sorted set stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the sorted set 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of elements removed. Defaults to 1. 17 | 18 | 19 | 20 | 21 | 22 | ```ts Example 23 | const popped = await redis.zpopmin("key", 4); 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/del.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.DEL 3 | description: Delete a key from a JSON document. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to delete. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many paths were deleted. 20 | 21 | 22 | 23 | ```py Example 24 | redis.json.del("key", "$.path.to.value") 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/append.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: APPEND 3 | description: Append a value to a string stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The value to append. 15 | 16 | 17 | ## Response 18 | 19 | 20 | How many characters were added to the string. 21 | 22 | 23 | 24 | ```ts Example 25 | await redis.append(key, "Hello"); 26 | // returns 5 27 | ``` 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/persist.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PERSIST 3 | description: Remove any timeout set on the key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to persist 11 | 12 | 13 | ## Response 14 | 15 | 16 | `True` if the timeout was set 17 | 18 | 19 | 20 | ```py Example 21 | redis.set("key1", "Hello") 22 | redis.expire("key1", 10) 23 | 24 | assert redis.ttl("key1") == 10 25 | 26 | redis.persist("key1") 27 | 28 | assert redis.ttl("key1") == -1 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/scripts/script_exists.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT EXISTS 3 | description: Check if scripts exist in the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The sha1 of the scripts to check. 10 | 11 | 12 | ## Response 13 | 14 | 15 | An array of numbers. `1` if the script exists, otherwise `0`. 16 | 17 | 18 | 19 | ```ts Example 20 | await redis.scriptExists("", "") 21 | 22 | // Returns 1 23 | // [1, 0] 24 | ``` 25 | 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hkeys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HKEYS 3 | description: Return all field names in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The field names of the hash 17 | 18 | 19 | 20 | ```py Example 21 | redis.hset("myhash", values={ 22 | "field1": "Hello", 23 | "field2": "World" 24 | }) 25 | 26 | assert redis.hkeys("myhash") == ["field1", "field2"] 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/forget.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.FORGET 3 | description: Delete a key from a JSON document. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to forget. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many paths were deleted. 20 | 21 | 22 | 23 | ```py Example 24 | redis.json.forget("key", "$.path.to.value") 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/exists.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: EXISTS 3 | description: Check if a key exists. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to check. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that exist 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.set("key1", "value1") 22 | await redis.set("key2", "value2") 23 | const keys = await redis.exists("key1", "key2", "key3"); 24 | console.log(keys) // 2 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zrank.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZRANK 3 | description: Returns the rank of a member 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The member to get the rank of. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The rank of the member. 21 | 22 | 23 | 24 | 25 | 26 | ```ts Example 27 | const rank = await redis.rank("key", "member"); 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /common/help/support.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Support & Contact Us" 3 | --- 4 | 5 | ## Community 6 | 7 | [Upstash Discord Channel](https://upstash.com/discord) is the best way to 8 | interact with the community. 9 | 10 | ## Team 11 | 12 | Regardless of your subscription plan, you can contact the team 13 | via [support@upstash.com](mailto:support@upstash.com) for technical support as 14 | well as questions and feedback. 15 | 16 | ## Follow Us 17 | 18 | Follow us on [X](https://x.com/upstash). 19 | 20 | ## Enterprise Support 21 | 22 | Get [Enterprise Support](/common/help/prosupport) for your organization from the Upstash team. 23 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hgetall.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HGETALL 3 | description: Retrieves all fields from a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key to get. 10 | 11 | 12 | ## Response 13 | 14 | 15 | An object with all fields in the hash. 16 | 17 | 18 | 19 | ```py Example 20 | redis.hset("myhash", values={ 21 | "field1": "Hello", 22 | "field2": "World" 23 | }) 24 | 25 | assert redis.hgetall("myhash") == {"field1": "Hello", "field2": "World"} 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/pubsub/publish.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PUBLISH 3 | description: Publish a message to a channel 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The channel to publish to. 11 | 12 | 13 | 14 | The message to publish. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of clients who received the message. 21 | 22 | 23 | 24 | ```py Example 25 | listeners = redis.publish("my-topic", "my-message") 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/sdiff.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SDIFF 3 | description: Return the difference between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the difference operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The resulting set. 17 | 18 | 19 | 20 | ```py Example 21 | redis.sadd("set1", "a", "b", "c"); 22 | redis.sadd("set2", "c", "d", "e"); 23 | 24 | assert redis.sdiff("set1", "set2") == {"a", "b"} 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/getdel.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETDEL 3 | description: Return the value of the specified key and delete the key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The response is the value stored at the key or `None` if the key doesn't exist. 17 | 18 | 19 | 20 | ```py Example 21 | redis.set("key", "value") 22 | 23 | assert redis.getdel("key") == "value" 24 | 25 | assert redis.get("key") == None 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/bitmap/getbit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETBIT 3 | description: Retrieve a single bit. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the bitset 11 | 12 | 13 | 14 | Specify the offset at which to get the bit. 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The bit value stored at offset. 22 | 23 | 24 | 25 | ```ts Example 26 | const bit = await redis.getbit(key, 4); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/del.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.DEL 3 | description: Delete a key from a JSON document. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to delete. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many paths were deleted. 20 | 21 | 22 | 23 | ```ts Example 24 | await redis.json.del("key", "$.path.to.value"); 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /workflow/basics/client/dlq/callback.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "client.dlq.retryFailureFunction" 3 | --- 4 | 5 | If a workflow's `failureFunction` or `failureUrl` request has failed, you can retry it using the `retryFailureFunction` method: 6 | 7 | ## Arguments 8 | 9 | ## Response 10 | 11 | ## Usage 12 | ```ts 13 | import { Client } from "@upstash/workflow"; 14 | 15 | const client = new Client({ token: "" }); 16 | 17 | // Retry the failure callback for a specific DLQ message 18 | const response = await client.dlq.retryFailureFunction({ 19 | dlqId: "dlq-12345" // The ID of the DLQ message to retry 20 | }); 21 | ``` 22 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hdel.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HDEL 3 | description: Deletes one or more hash fields. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | One or more fields to delete. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of fields that were removed from the hash. 21 | 22 | 23 | 24 | ```ts Example 25 | await redis.hdel(key, 'field1', 'field2'); 26 | // returns 5 27 | ``` 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/scripts/script_load.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT LOAD 3 | description: Load the specified Lua script into the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The script to load. 10 | 11 | 12 | ## Response 13 | 14 | 15 | The sha1 of the script. 16 | 17 | 18 | 19 | ```ts Example 20 | const script = ` 21 | local value = redis.call('GET', KEYS[1]) 22 | return value 23 | `; 24 | const sha1 = await redis.scriptLoad(script); 25 | 26 | ``` 27 | 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/sinter.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SINTER 3 | description: Return the intersection between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the intersection operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The resulting set. 17 | 18 | 19 | 20 | ```py Example 21 | redis.sadd("set1", "a", "b", "c"); 22 | redis.sadd("set2", "c", "d", "e"); 23 | 24 | assert redis.sinter("set1", "set2") == {"c"} 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/forget.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.FORGET 3 | description: Delete a key from a JSON document. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to forget. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many paths were deleted. 20 | 21 | 22 | 23 | ```ts Example 24 | await redis.json.forget("key", "$.path.to.value"); 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/sunion.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SUNION 3 | description: Return the union between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the union operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The resulting set 17 | 18 | 19 | 20 | ```py Example 21 | redis.sadd("key1", "a", "b", "c") 22 | 23 | redis.sadd("key2", "c", "d", "e") 24 | 25 | assert redis.sunion("key1", "key2") == {"a", "b", "c", "d", "e"} 26 | ``` 27 | 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hkeys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HKEYS 3 | description: Return all field names in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The field names of the hash 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.hset("key", { 22 | id: 1, 23 | username: "chronark", 24 | }); 25 | const fields = await redis.hkeys("key"); 26 | console.log(fields); // ["id", "username"] 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HLEN 3 | description: Returns the number of fields contained in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | How many fields are in the hash. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.hset("key", { 22 | id: 1, 23 | username: "chronark", 24 | }); 25 | const fields = await redis.hlen("key"); 26 | console.log(fields); // 2 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /vector/sdks/ts/contributing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contributing 3 | --- 4 | 5 | ## Preparing the environment 6 | 7 | This project uses [Bun](https://bun.sh/) for packaging and dependency management. Make sure you have the relevant dependencies. 8 | 9 | ```commandline 10 | curl -fsSL https://bun.sh/install | bash 11 | ``` 12 | 13 | You will also need a vector database on [Upstash](https://console.upstash.com/). 14 | 15 | ## Code Formatting 16 | 17 | ```bash 18 | bun run fmt 19 | ``` 20 | 21 | ## Running tests 22 | 23 | To run all the tests, make sure you have the relevant environment variables. 24 | 25 | ```bash 26 | bun run test 27 | ``` 28 | -------------------------------------------------------------------------------- /qstash/sdks/py/overview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | --- 4 | 5 | `qstash` is an Python SDK for QStash, allowing for easy access to the QStash API. 6 | 7 | Using `qstash` you can: 8 | 9 | - Publish a message to a URL/URL group/API 10 | - Publish a message with a delay 11 | - Schedule a message to be published 12 | - Access logs for the messages that have been published 13 | - Create, read, update, or delete URL groups. 14 | - Read or remove messages from the [DLQ](/qstash/features/dlq) 15 | - Read or cancel messages 16 | - Verify the signature of a message 17 | 18 | You can find the Github Repository [here](https://github.com/upstash/qstash-py). 19 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/exists.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: EXISTS 3 | description: Check if a key exists. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to check. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that exist 17 | 18 | 19 | 20 | ```py Example 21 | redis.set("key1", "Hello") 22 | redis.set("key2", "World") 23 | 24 | assert redis.exists("key1", "key2") == 2 25 | 26 | redis.delete("key1") 27 | 28 | assert redis.exists("key1", "key2") == 1 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/scripts/script_exists.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT EXISTS 3 | description: Check if scripts exist in the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The sha1 of the scripts to check. 10 | 11 | 12 | ## Response 13 | 14 | 15 | A list of booleans indicating if the script exists in the script cache. 16 | 17 | 18 | 19 | ```py Example 20 | # Script 1 exists 21 | # Script 0 does not 22 | await redis.scriptExists("", "") == [1, 0] 23 | ``` 24 | 25 | 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/pubsub/publish.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PUBLISH 3 | description: Publish a message to a channel 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The channel to publish to. 11 | 12 | 13 | 14 | The message to publish. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of clients who received the message. 21 | 22 | 23 | 24 | ```ts Example 25 | const listeners = await redis.publish("my-channel", "my-message"); 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/getdel.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETDEL 3 | description: Return the value of the specified key and delete the key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | 17 | The response is the value stored at the key or `null` if the key doesn't exist. 18 | 19 | 20 | 21 | ```ts Example 22 | type MyType = { 23 | a: number; 24 | b: string; 25 | } 26 | await redis.getdel("key"); 27 | // returns {a: 1, b: "2"} 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hvals.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HVALS 3 | description: Returns all values in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | 14 | ## Response 15 | 16 | 17 | All values in the hash, or an empty list when key does not exist. 18 | 19 | 20 | 21 | ```py Example 22 | redis.hset("myhash", values={ 23 | "field1": "Hello", 24 | "field2": "World" 25 | }) 26 | 27 | assert redis.hvals("myhash") == ["Hello", "World"] 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/arrlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.ARRLEN 3 | description: Report the length of the JSON array at `path` in `key`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the array. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | The length of the array. 20 | 21 | 22 | 23 | ```py Example 24 | length = redis.json.arrlen("key", "$.path.to.array") 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/strlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.STRLEN 3 | description: Report the length of the JSON String at path in key 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the string. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | The length of the string at the path. 20 | 21 | 22 | 23 | ```py Example 24 | redis.json.strlen("key", "$.path.to.str") 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/mset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MSET 3 | description: Set multiple keys in one go. 4 | --- 5 | 6 | 7 | For billing purposes, this counts as a single command. 8 | 9 | 10 | ## Arguments 11 | 12 | 13 | An object where the keys are the keys to set, and the values are the values to set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | `True` if the operation succeeded. 20 | 21 | 22 | 23 | ```py Example 24 | redis.mset({ 25 | "key1": "value1", 26 | "key2": "value2" 27 | }) 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /search/sdks/py/commands/reset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Reset 3 | --- 4 | 5 | ## Reset Command for Python SDK 6 | 7 | The `reset` method allows you to clear all documents from a particular index. 8 | 9 | ### Response 10 | 11 | 12 | `'Success'` if the database is successfully reset. 13 | 14 | 15 | 16 | 17 | ```python 18 | from upstash_search import Search 19 | 20 | client = Search( 21 | url="", 22 | token="", 23 | ) 24 | 25 | index = client.index("movies") 26 | index.reset() 27 | ``` 28 | 29 | 30 | -------------------------------------------------------------------------------- /qstash/sdks/py/examples/receiver.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Receiver 3 | --- 4 | 5 | When receiving a message from QStash, you should [verify the signature](/qstash/howto/signature). 6 | The QStash Python SDK provides a helper function for this. 7 | 8 | ```python 9 | from qstash import Receiver 10 | 11 | receiver = Receiver( 12 | current_signing_key="YOUR_CURRENT_SIGNING_KEY", 13 | next_signing_key="YOUR_NEXT_SIGNING_KEY", 14 | ) 15 | 16 | # ... in your request handler 17 | 18 | signature, body = req.headers["Upstash-Signature"], req.body 19 | 20 | receiver.verify( 21 | body=body, 22 | signature=signature, 23 | url="YOUR-SITE-URL", 24 | ) 25 | ``` 26 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HLEN 3 | description: Returns the number of fields contained in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | How many fields are in the hash. 17 | 18 | 19 | 20 | ```py Example 21 | assert redis.hlen("myhash") == 0 22 | 23 | redis.hset("myhash", values={ 24 | "field1": "Hello", 25 | "field2": "World" 26 | }) 27 | 28 | assert redis.hlen("myhash") == 2 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hstrlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HSTRLEN 3 | description: Returns the string length of a value in a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | The name of the field. 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | `0` if the hash or field does not exist. Otherwise the length of the string. 22 | 23 | 24 | 25 | ```py Example 26 | length = redis.hstrlen("key", "field") 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/mset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.MSET 3 | description: Sets multiple JSON values at multiple paths in multiple keys. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | A list of tuples where each tuple contains a key, a path, and a value. 10 | 11 | 12 | ## Response 13 | 14 | 15 | Returns true if the operation was successful. 16 | 17 | 18 | 19 | ```py Example 20 | redis.json.mset([(key, "$.path", value), (key2, "$.path2", value2)]) 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/toggle.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.TOGGLE 3 | description: Toggle a boolean value stored at `path`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the boolean. `$` is the root. 13 | 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The new value of the boolean. 22 | 23 | 24 | 25 | ```py Example 26 | bool = redis.json.toggle("key", "$.path.to.bool") 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/stream/xgroup_destroy.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: XGROUP DESTROY 3 | description: Delete an entire consumer group. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the stream. 10 | 11 | 12 | 13 | The consumer group name to destroy. 14 | 15 | 16 | ## Response 17 | 18 | 19 | Returns 1 if the group was destroyed, 0 if it didn't exist. 20 | 21 | 22 | 23 | ```py Destroy existing group 24 | result = redis.xgroup_destroy("mystream", "mygroup") 25 | ``` 26 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hgetall.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HGETALL 3 | description: Retrieves all fields from a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key to get. 10 | 11 | 12 | ## Response 13 | 14 | 15 | An object with all fields in the hash. 16 | 17 | 18 | 19 | ```ts Example 20 | await redis.hset("key", { 21 | field1: "value1", 22 | field2: "value2", 23 | }); 24 | const hash = await redis.hgetall("key"); 25 | console.log(hash); // { field1: "value1", field2: "value2" } 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/scripts/script_flush.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SCRIPT FLUSH 3 | description: Removes all scripts from the script cache. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | 10 | Performs the flush asynchronously. 11 | 12 | 13 | Performs the flush synchronously. 14 | 15 | 16 | 17 | 18 | ```ts Example 19 | await redis.scriptFlush(); 20 | ``` 21 | 22 | ```ts With options 23 | await redis.scriptFlush({ 24 | async: true, 25 | }); 26 | ``` 27 | 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/renamenx.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: RENAMENX 3 | description: Rename a key if it does not already exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The original key. 11 | 12 | 13 | 14 | 15 | A new name for the key. 16 | 17 | 18 | ## Response 19 | 20 | 21 | `1` if key was renamed, `0` if key was not renamed. 22 | 23 | 24 | 25 | ```ts Example 26 | const renamed = await redis.renamenx("old", "new"); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /qstash/sdks/ts/overview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview 3 | --- 4 | 5 | `@upstash/qstash` is a Typescript SDK for QStash, allowing for easy access to the QStash API. 6 | 7 | Using `@upstash/qstash` you can: 8 | 9 | - Publish a message to a URL/URL Group 10 | - Publish a message with a delay 11 | - Schedule a message to be published 12 | - Access logs for the messages that have been published 13 | - Create, read, update, or delete URL groups. 14 | - Read or remove messages from the [DLQ](/qstash/features/dlq) 15 | - Read or cancel messages 16 | - Verify the signature of a message 17 | 18 | You can find the Github Repository [here](https://github.com/upstash/sdk-qstash-ts). 19 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/objkeys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.OBJKEYS 3 | description: Return the keys in the object that`s referenced by path. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the object. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The keys of the object at the path. 21 | 22 | 23 | 24 | ```py Example 25 | keys = redis.json.objkeys("key", "$.path") 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/objlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.OBJLEN 3 | description: Report the number of keys in the JSON object at `path` in `key`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the object. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of keys in the objects. 21 | 22 | 23 | 24 | ```py Example 25 | lengths = redis.json.objlen("key", "$.path") 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/del.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: DEL 3 | description: Removes the specified keys. A key is ignored if it does not exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to remove. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that were removed. 17 | 18 | 19 | 20 | ```py Example 21 | redis.set("key1", "Hello") 22 | redis.set("key2", "World") 23 | redis.delete("key1", "key2") 24 | 25 | assert redis.get("key1") is None 26 | assert redis.get("key2") is None 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/del.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: DEL 3 | description: Removes the specified keys. A key is ignored if it does not exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to remove. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that were removed. 17 | 18 | 19 | 20 | ```ts Basic 21 | await redis.del("key1", "key2"); 22 | ``` 23 | ```ts Array 24 | // in case you have an array of keys 25 | const keys = ["key1", "key2"]; 26 | await redis.del(...keys) 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/arrlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.ARRLEN 3 | description: Report the length of the JSON array at `path` in `key`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the array. `$` is the root. 13 | 14 | 15 | 16 | ## Response 17 | 18 | 19 | The length of the array. 20 | 21 | 22 | 23 | ```ts Example 24 | const length = await redis.json.arrlen("key", "$.path.to.array"); 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/toggle.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.TOGGLE 3 | description: Toggle a boolean value stored at `path`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the boolean. `$` is the root. 13 | 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The new value of the boolean. 22 | 23 | 24 | 25 | ```ts Example 26 | const bool = await redis.json.toggle("key", "$.path.to.bool"); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/pubsub/subscribe.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SUBSCRIBE 3 | description: Subscribe to a channel 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The channel to publish to. 11 | 12 | 13 | ## Response 14 | 15 | 16 | A subscriber instance which can subscribe to channels. 17 | 18 | 19 | 20 | ```ts Example 21 | const subscription = redis.subscribe(["my-channel"]); 22 | 23 | const messages = []; 24 | subscription.on("message", (data) => { 25 | messages.push(data.message); 26 | }); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /qstash/howto/reset-token.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Reset Token" 3 | --- 4 | 5 | Your token is used to interact with the QStash API. You need it to publish 6 | messages as well as create, read, update or delete other resources, such as 7 | URL Groups and endpoints. 8 | 9 | Resetting your token will invalidate your current token and all future requests 10 | with the old token will be rejected. 11 | 12 | To reset your token, simply click on the "Reset token" button at the bottom in 13 | the [QStash UI](https://console.upstash.com/qstash) and confirm the dialog. 14 | 15 | ![](/img/qstash/reset_token.png) 16 | 17 | Afterwards you should immediately update your token in all your applications. 18 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/sismember.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SISMEMBER 3 | description: Check if a member exists in a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set to check. 10 | 11 | 12 | 13 | The member to check for. 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | `True` if the member exists in the set, `False` if not. 21 | 22 | 23 | 24 | ```py Example 25 | redis.sadd("set", "a", "b", "c") 26 | 27 | assert redis.sismember("set", "a") == True 28 | ``` 29 | 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hvals.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HVALS 3 | description: Returns all values in the hash stored at key. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | 14 | ## Response 15 | 16 | 17 | All values in the hash, or an empty list when key does not exist. 18 | 19 | 20 | 21 | ```ts Example 22 | await redis.hset("key", { 23 | field1: "Hello", 24 | field2: "World", 25 | }) 26 | const values = await redis.hvals("key") 27 | console.log(values) // ["Hello", "World"] 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/append.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: APPEND 3 | description: Append a value to a string stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The value to append. 15 | 16 | 17 | ## Response 18 | 19 | 20 | How many characters were added to the string. 21 | 22 | 23 | 24 | ```py Example 25 | redis.set("key", "Hello") 26 | 27 | assert redis.append("key", " World") == 11 28 | 29 | assert redis.get("key") == "Hello World" 30 | ``` 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hstrlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HSTRLEN 3 | description: Returns the string length of a value in a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | The name of the field. 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | `0` if the hash or field does not exist. Otherwise the length of the string. 22 | 23 | 24 | 25 | ```ts Example 26 | const length = await redis.hstrlen("key", "field") 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/objkeys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.OBJKEYS 3 | description: Return the keys in the object that`s referenced by path. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the array. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The keys of the object at the path. 21 | 22 | 23 | 24 | ```ts Example 25 | const keys = await redis.json.objkeys("key", "$.path"); 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/getset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETSET 3 | description: Return the value of the specified key and replace it with a new value. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The new value to store. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The response is the value stored at the key or `null` if the key doesn't exist. 21 | 22 | 23 | 24 | ```ts Example 25 | 26 | const oldValue = await redis.getset("key", newValue); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /qstash/sdks/py/examples/keys.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Keys 3 | --- 4 | 5 | 6 | You can run the async code by importing `AsyncQStash` from `qstash` 7 | and awaiting the methods. 8 | 9 | 10 | #### Retrieve your signing Keys 11 | 12 | ```python 13 | from qstash import QStash 14 | 15 | client = QStash("") 16 | signing_key = client.signing_key.get() 17 | 18 | print(signing_key.current, signing_key.next) 19 | ``` 20 | 21 | #### Rotate your signing Keys 22 | 23 | ```python 24 | from qstash import QStash 25 | 26 | client = QStash("") 27 | new_signing_key = client.signing_key.rotate() 28 | 29 | print(new_signing_key.current, new_signing_key.next) 30 | ``` 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/unlink.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: UNLINK 3 | description: Removes the specified keys. A key is ignored if it does not exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | One or more keys to unlink. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of keys that were unlinked. 17 | 18 | 19 | 20 | ```ts Basic 21 | await redis.unlink("key1", "key2"); 22 | ``` 23 | ```ts Array 24 | // in case you have an array of keys 25 | const keys = ["key1", "key2"]; 26 | await redis.unlink(...keys) 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/objlen.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.OBJLEN 3 | description: Report the number of keys in the JSON object at `path` in `key`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the object. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of keys in the objects. 21 | 22 | 23 | 24 | ```ts Example 25 | const lengths = await redis.json.objlen("key", "$.path"); 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/sdiff.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SDIFF 3 | description: Return the difference between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the difference operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The members of the resulting set. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.sadd("set1", "a", "b", "c"); 22 | await redis.sadd("set2", "c", "d", "e"); 23 | const diff = await redis.sdiff("set1", "set2"); 24 | console.log(diff); // ["a", "b"] 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/mset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MSET 3 | description: Set multiple keys in one go. 4 | --- 5 | 6 | 7 | For billing purposes, this counts as a single command. 8 | 9 | 10 | ## Arguments 11 | 12 | 13 | An object where the keys are the keys to set, and the values are the values to set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | "OK" 20 | 21 | 22 | 23 | 24 | 25 | ```ts Example 26 | await redis.mset({ 27 | key1: 1, 28 | key2: "hello", 29 | key3: { a: 1, b: "hello" }, 30 | }); 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zrevrank.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZREVRANK 3 | description: Returns the rank of a member in a sorted set, with scores ordered from high to low. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The member to get the reverse rank of. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The reverse rank of the member. 21 | 22 | 23 | 24 | 25 | 26 | ```ts Example 27 | const rank = await redis.rank("key", "member"); 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/resp.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.RESP 3 | description: Return the value at the path in Redis serialization protocol format. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the object. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | Return the value at the path in Redis serialization protocol format. 21 | 22 | 23 | 24 | ```py Example 25 | resp = redis.json.resp("key", "$.path") 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/type.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.TYPE 3 | description: Report the type of JSON value at `path`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the value. `$` is the root. 13 | 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The type of the value at `path` or `null` if the value does not exist. 22 | 23 | 24 | 25 | ```py Example 26 | myType = redis.json.type("key", "$.path.to.value") 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/srem.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SREM 3 | description: Remove one or more members from a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set to remove the member from. 10 | 11 | 12 | 13 | One or more members to remove from the set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many members were removed 20 | 21 | 22 | 23 | ```py Example 24 | redis.sadd("myset", "one", "two", "three") 25 | 26 | assert redis.srem("myset", "one", "four") == 1 27 | ``` 28 | 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/sunion.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SUNION 3 | description: Return the union between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the union operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The members of the resulting set. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.sadd("set1", "a", "b", "c"); 22 | await redis.sadd("set2", "c", "d", "e"); 23 | const union = await redis.sunion("set1", "set2"); 24 | console.log(union); // ["a", "b", "c", "d", "e"] 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zcard.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZCARD 3 | description: Returns the number of elements in the sorted set stored at key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The number of elements in the sorted set. 17 | 18 | 19 | 20 | 21 | 22 | ```ts Example 23 | 24 | await redis.zadd("key", 25 | { score: 1, member: "one"}, 26 | { score: 2, member: "two" }, 27 | ); 28 | const elements = await redis.zrank("key"); 29 | console.log(elements); // 2 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hmset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HMSET 3 | description: Write multiple fields to a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | A dictionary of fields and their values. 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of fields that were added. 21 | 22 | 23 | 24 | ```py Example 25 | # Set multiple fields 26 | assert redis.hset("myhash"{ 27 | "field1": "Hello", 28 | "field2": "World" 29 | }) == 2 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/zset/zrem.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZREM 3 | description: Remove one or more members from a sorted set 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the sorted set 11 | 12 | 13 | 14 | 15 | One or more members to remove 16 | 17 | ## Response 18 | 19 | 20 | The number of members removed from the sorted set. 21 | 22 | 23 | 24 | ```py Single 25 | redis.zadd("myset", {"one": 1, "two": 2, "three": 3}) 26 | 27 | assert redis.zrem("myset", "one", "four") == 1 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /qstash/sdks/py/examples/events.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Events 3 | --- 4 | 5 | 6 | You can run the async code by importing `AsyncQStash` from `qstash` 7 | and awaiting the methods. 8 | 9 | 10 | #### Get all events with pagination using cursor 11 | 12 | Since there can be a large number of events, they are paginated. 13 | You can go through the results using the `cursor`. 14 | 15 | ```python 16 | from qstash import QStash 17 | 18 | client = QStash("") 19 | 20 | all_events = [] 21 | cursor = None 22 | while True: 23 | res = client.event.list(cursor=cursor) 24 | all_events.extend(res.events) 25 | cursor = res.cursor 26 | if cursor is None: 27 | break 28 | ``` 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/set/sadd.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SADD 3 | description: Adds one or more members to a set. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set. 10 | 11 | 12 | 13 | One or more members to add to the set. 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of elements that were added to the set, not including all the elements already present in the set. 21 | 22 | 23 | 24 | ```py Example 25 | assert redis.sadd("key", "a", "b", "c") == 3 26 | ``` 27 | 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HSET 3 | description: Write one or more fields to a hash. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the hash. 10 | 11 | 12 | 13 | An object of fields and their values. 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The number of fields that were added. 22 | 23 | 24 | 25 | ```ts Example 26 | await redis.hset("key", { 27 | id: 1, 28 | username: "chronark", 29 | name: "andreas" 30 | }); 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/sinter.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SINTER 3 | description: Return the intersection between sets 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The keys of the sets to perform the intersection operation on. 10 | 11 | 12 | 13 | ## Response 14 | 15 | 16 | The members of the resulting set. 17 | 18 | 19 | 20 | ```ts Example 21 | await redis.sadd("set1", "a", "b", "c"); 22 | await redis.sadd("set2", "c", "d", "e"); 23 | const intersection = await redis.sinter("set1", "set2"); 24 | console.log(intersection); // ["c"] 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /devops/developer-api/authentication.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Authentication" 3 | description: "Authentication for the Upstash Developer API" 4 | --- 5 | 6 | The Upstash API requires API keys to authenticate requests. You can view and 7 | manage API keys at the Upstash Console. 8 | 9 | Upstash API uses HTTP Basic authentication. You should pass `EMAIL` and 10 | `API_KEY` as basic authentication username and password respectively. 11 | 12 | With a client such as `curl`, you can pass your credentials with the `-u` 13 | option, as the following example shows: 14 | 15 | ```curl 16 | curl https://api.upstash.com/v2/redis/databases -u EMAIL:API_KEY 17 | ``` 18 | 19 | Replace `EMAIL` and `API_KEY` with your email and API key. 20 | -------------------------------------------------------------------------------- /qstash/sdks/ts/examples/receiver.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Receiver 3 | --- 4 | 5 | When receiving a message from QStash, you should [verify the signature](/qstash/howto/signature). 6 | The QStash Typescript SDK provides a helper function for this. 7 | 8 | ```typescript 9 | import { Receiver } from "@upstash/qstash"; 10 | 11 | const receiver = new Receiver({ 12 | currentSigningKey: "YOUR_CURRENT_SIGNING_KEY", 13 | nextSigningKey: "YOUR_NEXT_SIGNING_KEY", 14 | }); 15 | 16 | // ... in your request handler 17 | 18 | const signature = req.headers["Upstash-Signature"]; 19 | const body = req.body; 20 | 21 | const isValid = await receiver.verify({ 22 | body, 23 | signature, 24 | url: "YOUR-SITE-URL", 25 | }); 26 | ``` 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/generic/type.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: TYPE 3 | description: Get the type of a key. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The type of the key. 17 | 18 | One of `string` | `list` | `set` | `zset` | `hash` | `none` 19 | 20 | 21 | 22 | ```py Example 23 | redis.set("key1", "Hello") 24 | 25 | assert redis.type("key1") == "string" 26 | 27 | redis.lpush("key2", "Hello") 28 | 29 | assert redis.type("key2") == "list" 30 | 31 | assert redis.type("non-existent-key") == "none" 32 | ``` 33 | 34 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hexists.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HEXISTS 3 | description: Checks if a field exists in a hash. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The field to check. 15 | 16 | 17 | ## Response 18 | 19 | 20 | `True` if the hash contains `field`. `False` if the hash does not contain `field`, or `key` does not exist. 21 | 22 | 23 | 24 | ```py Example 25 | redis.hset("key", "field", "value") 26 | 27 | assert redis.hexists("key", "field") == True 28 | ``` 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/expire.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: EXPIRE 3 | description: Sets a timeout on key. The key will automatically be deleted. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to set the timeout on. 11 | 12 | 13 | 14 | How many seconds until the key should be deleted. 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | `1` if the timeout was set, `0` otherwise 22 | 23 | 24 | 25 | ```ts Example 26 | await redis.set("mykey", "Hello"); 27 | await redis.expire("mykey", 10); 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/msetnx.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MSETNX 3 | description: Set multiple keys in one go unless they exist already. 4 | --- 5 | 6 | 7 | For billing purposes, this counts as a single command. 8 | 9 | 10 | ## Arguments 11 | 12 | 13 | An object where the keys are the keys to set, and the values are the values to set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | `True` if all keys were set, `False` if at least one key was not set. 20 | 21 | 22 | 23 | ```ts Example 24 | redis.msetnx({ 25 | "key1": "value1", 26 | "key2": "value2" 27 | }) 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/ts/retries.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Retries 3 | --- 4 | 5 | By default `@upstash/redis` will retry sending you request when network errors 6 | occur. It will retry 5 times with a backoff of 7 | `(retryCount) => Math.exp(retryCount) * 50` milliseconds. 8 | 9 | You can customize this in the `Redis` constructor: 10 | 11 | ```ts 12 | new Redis({ 13 | url: UPSTASH_REDIS_REST_URL, 14 | token: UPSTASH_REDIS_REST_TOKEN, 15 | retry: { 16 | retries: 5, 17 | backoff: (retryCount) => Math.exp(retryCount) * 50, 18 | }, 19 | }); 20 | ``` 21 | 22 | The exact type definition can be found 23 | [here](https://github.com/upstash/upstash-redis/blob/4948b049e0d580d1de0a4cbfeac5565d7e035cc4/pkg/http.ts#LL31C1-L49C5). 24 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/getset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GETSET 3 | description: Return the value of the specified key and replace it with a new value. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The new value to store. 15 | 16 | 17 | ## Response 18 | 19 | The response is the value stored at the key or `None` if the key doesn't exist. 20 | 21 | 22 | 23 | ```py Example 24 | redis.set("key", "old-value") 25 | 26 | assert redis.getset("key", "newvalue") == "old-value" 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/type.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.TYPE 3 | description: Report the type of JSON value at `path`. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path of the value. `$` is the root. 13 | 14 | 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | The type of the value at `path` or `null` if the value does not exist. 22 | 23 | 24 | 25 | ```ts Example 26 | const myType = await redis.json.type("key", "$.path.to.value"); 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/bitmap/setbit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SETBIT 3 | description: Set a single bit in a string. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the bitset 11 | 12 | 13 | 14 | Specify the offset at which to set the bit. 15 | 16 | 17 | 18 | The bit to set 19 | 20 | 21 | ## Response 22 | 23 | 24 | The original bit value stored at offset. 25 | 26 | 27 | 28 | ```py Example 29 | original_bit = redis.setbit(key, 4, 1) 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/clear.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.CLEAR 3 | description: Clear container values (arrays/objects) and set numeric values to 0. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to clear. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | How many keys cleared from the objects. 21 | 22 | 23 | 24 | ```py Example 25 | redis.json.clear("key") 26 | ``` 27 | ```py With path 28 | redis.json.clear("key", "$.my.key") 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/sismember.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SISMEMBER 3 | description: Check if a member exists in a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set to check. 10 | 11 | 12 | 13 | The member to check for. 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | `1` if the member exists in the set, `0` if not. 21 | 22 | 23 | 24 | ```ts Example 25 | await redis.sadd("set", "a", "b", "c"); 26 | const isMember = await redis.sismember("set", "a"); 27 | console.log(isMember); // 1 28 | ``` 29 | 30 | 31 | -------------------------------------------------------------------------------- /redis/troubleshooting/econn_reset.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Error read ECONNRESET 3 | --- 4 | 5 | ### Symptom 6 | 7 | The client can not connect to the database throwing an exception similar to: 8 | 9 | ``` 10 | [ioredis] Unhandled error event: Error: read ECONNRESET 11 | at TCP.onStreamRead (node:internal/stream_base_commons:211:20) 12 | ``` 13 | 14 | ### Diagnosis 15 | 16 | The server is TLS enabled but your connection (client) is not. 17 | 18 | ### Solution 19 | 20 | Check your connection parameters and ensure you enable TLS. 21 | 22 | If you are using a Redis URL then it should start with `rediss://`. 23 | 24 | You can copy the correct client configuration from Upstash console clicking on 25 | **Redis Connect** button. 26 | -------------------------------------------------------------------------------- /search/sdks/ts/contributing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contributing 3 | --- 4 | 5 | ## Preparing the environment 6 | 7 | This project uses [Bun](https://bun.sh/) for packaging and dependency management. Make sure you have the relevant dependencies. 8 | 9 | ```commandline 10 | curl -fsSL https://bun.sh/install | bash 11 | ``` 12 | 13 | You will also need a search database on [Upstash](https://console.upstash.com/search). 14 | 15 | --- 16 | 17 | ## Code Formatting 18 | 19 | Run the following command to format code: 20 | 21 | ```bash 22 | bun run fmt 23 | ``` 24 | 25 | --- 26 | 27 | ## Running tests 28 | 29 | To run all the tests, make sure you have the relevant environment variables. 30 | 31 | ```bash 32 | bun run test 33 | ``` 34 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/hash/hdel.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HDEL 3 | description: Deletes one or more hash fields. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | One or more fields to delete. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The number of fields that were removed from the hash. 21 | 22 | 23 | 24 | ```py Example 25 | redis.hset("myhash", "field1", "Hello") 26 | redis.hset("myhash", "field2", "World") 27 | 28 | assert redis.hdel("myhash", "field1", "field2") == 2 29 | ``` 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.GET 3 | description: Get a single value from a JSON document. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | 13 | One or more paths to retrieve from the JSON document. `$` is the root. 14 | 15 | 16 | ## Response 17 | 18 | 19 | The value at the specified path or `null` if the path does not exist. 20 | 21 | 22 | 23 | ```py Example 24 | value = redis.json.get("key", "$.path.to.somewhere") 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/json/mget.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.MGET 3 | description: Get the same path from multiple JSON documents. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | One or more keys of JSON documents. 10 | 11 | 12 | 13 | The path to get from the JSON document. 14 | 15 | 16 | ## Response 17 | 18 | 19 | The values at the specified path or `null` if the path does not exist. 20 | 21 | 22 | 23 | ```py Example 24 | values = redis.json.mget(["key1", "key2"], "$.path.to.somewhere") 25 | ``` 26 | 27 | 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/zset/zrevrank.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZREVRANK 3 | description: Returns the rank of a member in a sorted set, with scores ordered from high to low. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The member to get the reverse rank of. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The reverse rank of the member. 21 | 22 | 23 | 24 | 25 | 26 | ```py Example 27 | redis.zadd("myset", {"a": 1, "b": 2, "c": 3}) 28 | 29 | assert redis.zrevrank("myset", "a") == 2 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/generic/pexpire.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: PEXPIRE 3 | description: Sets a timeout on key. After the timeout has expired, the key will automatically be deleted. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to expire. 11 | 12 | 13 | 14 | The number of milliseconds until the key expires. 15 | 16 | 17 | 18 | ## Response 19 | 20 | 21 | `1` if the timeout was applied, `0` if `key` does not exist. 22 | 23 | 24 | 25 | ```ts Example 26 | await redis.pexpire(key, 60_000); // 1 minute 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/json/clear.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: JSON.CLEAR 3 | description: Clear container values (arrays/objects) and set numeric values to 0. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the json entry. 10 | 11 | 12 | The path to clear. `$` is the root. 13 | 14 | 15 | 16 | 17 | ## Response 18 | 19 | 20 | How many values were cleared. 21 | 22 | 23 | 24 | ```ts Example 25 | await redis.json.clear("key"); 26 | ``` 27 | ```ts With path 28 | await redis.json.clear("key", "$.my.key"); 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zrem.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZREM 3 | description: Remove one or more members from a sorted set 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the sorted set 11 | 12 | 13 | 14 | 15 | One or more members to remove 16 | 17 | ## Response 18 | 19 | 20 | The number of members removed from the sorted set. 21 | 22 | 23 | 24 | 25 | 26 | ```ts Single 27 | await redis.zrem("key", "member"); 28 | ``` 29 | 30 | ```ts Multiple 31 | await redis.zrem("key", "member1", "member2"); 32 | ``` 33 | 34 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/set/srem.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SREM 3 | description: Remove one or more members from a set 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the set to remove the member from. 10 | 11 | 12 | 13 | One or more members to remove from the set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | How many members were removed 20 | 21 | 22 | 23 | ```ts Example 24 | await redis.sadd("set", "a", "b", "c"); 25 | const removed = await redis.srem("set", "a", "b", "d"); 26 | console.log(removed); // 2 27 | ``` 28 | 29 | 30 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/decr.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: DECR 3 | description: Decrement the integer value of a key by one 4 | --- 5 | 6 | If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer. 7 | 8 | ## Arguments 9 | 10 | 11 | The key to decrement. 12 | 13 | 14 | 15 | ## Response 16 | 17 | 18 | The value at the key after the decrementing. 19 | 20 | 21 | 22 | ```py Example 23 | redis.set("key", 6) 24 | 25 | assert redis.decr("key") == 5 26 | ``` 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/incr.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: INCR 3 | description: Increment the integer value of a key by one 4 | --- 5 | 6 | If a key does not exist, it is initialized as 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer. 7 | 8 | ## Arguments 9 | 10 | 11 | The key to increment. 12 | 13 | 14 | 15 | ## Response 16 | 17 | 18 | The value at the key after the incrementing. 19 | 20 | 21 | 22 | ```py Example 23 | redis.set("key", 6) 24 | 25 | assert redis.incr("key") == 7 26 | ``` 27 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/msetnx.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MSETNX 3 | description: Set multiple keys in one go unless they exist already. 4 | --- 5 | 6 | 7 | For billing purposes, this counts as a single command. 8 | 9 | 10 | ## Arguments 11 | 12 | 13 | An object where the keys are the keys to set, and the values are the values to set. 14 | 15 | 16 | ## Response 17 | 18 | 19 | `1` if all keys were set, `0` if at least one key was not set. 20 | 21 | 22 | 23 | 24 | 25 | ```py Example 26 | redis.msetnx({ 27 | key1: 1, 28 | key2: "hello", 29 | key3: { a: 1, b: "hello" }, 30 | }) 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/bitmap/setbit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: SETBIT 3 | description: Set a single bit in a string. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key of the bitset 11 | 12 | 13 | 14 | Specify the offset at which to set the bit. 15 | 16 | 17 | 18 | The bit to set 19 | 20 | 21 | ## Response 22 | 23 | 24 | The original bit value stored at offset. 25 | 26 | 27 | 28 | ```ts Example 29 | const originalBit = await redis.setbit(key, 4, 1); 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/zset/zscore.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ZSCORE 3 | description: Returns the scores of a member. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | A member of the sortedset. 17 | 18 | 19 | 20 | 21 | 22 | ```ts Example 23 | 24 | await redis.zadd("key", 25 | { score: 1, member: "m1" }, 26 | { score: 2, member: "m2" }, 27 | { score: 3, member: "m3" }, 28 | { score: 4, member: "m4" }, 29 | ) 30 | 31 | const score = await redis.zscore("key", "m2") 32 | console.log(score) // 2 33 | ``` 34 | 35 | -------------------------------------------------------------------------------- /redis/troubleshooting/max_requests_limit.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: ERR max requests limit exceeded 3 | --- 4 | 5 | ### Symptom 6 | 7 | The client gets an exception similar to: 8 | 9 | ``` 10 | ReplyError: ERR max requests limit exceeded. 11 | ``` 12 | 13 | ### Diagnosis 14 | 15 | Your database exceeds the max monthly request count limit. 16 | 17 | ### Solution-1 18 | 19 | You can refactor your application to send less number of commands. 20 | 21 | ### Solution-2 22 | 23 | You can upgrade your database to a paid plan, such as pay-as-you-go or a fixed plan 24 | by entering a payment method. When you entered your credit card, your database will be upgraded 25 | automatically. 26 | 27 | See [here](../howto/upgradedatabase) for more information. 28 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/list/lpush.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: LPUSH 3 | description: Push an element at the head of the list. 4 | --- 5 | 6 | ## Arguments 7 | 8 | 9 | The key of the list. 10 | 11 | 12 | 13 | One or more elements to push at the head of the list. 14 | 15 | 16 | ## Response 17 | 18 | 19 | The length of the list after the push operation. 20 | 21 | 22 | 23 | ```py Example 24 | assert redis.lpush("mylist", "one", "two", "three") == 3 25 | 26 | assert lrange("mylist", 0, -1) == ["three", "two", "one"] 27 | ``` 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /redis/sdks/py/commands/string/mget.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: MGET 3 | description: Load multiple keys from Redis in one go. 4 | --- 5 | 6 | For billing purposes, this counts as a single command. 7 | 8 | ## Arguments 9 | 10 | 11 | Multiple keys to load from Redis. 12 | 13 | 14 | ## Response 15 | 16 | 17 | An array of values corresponding to the keys passed in. If a key doesn't exist, the value will be `None`. 18 | 19 | 20 | 21 | ```py Example 22 | redis.set("key1", "value1") 23 | 24 | redis.set("key2", "value2") 25 | 26 | assert redis.mget("key1", "key2") == ["value1", "value2"] 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/hash/hget.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: HGET 3 | description: Retrieves the value of a hash field. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | 14 | The field to get. 15 | 16 | 17 | ## Response 18 | 19 | 20 | The value of the field, or `null`, when field is not present in the hash or key does not exist. 21 | 22 | 23 | 24 | ```ts Example 25 | await redis.hset("key", {field: "value"}); 26 | const field = await redis.hget("key", "field"); 27 | console.log(field); // "value" 28 | ``` 29 | -------------------------------------------------------------------------------- /redis/sdks/ts/commands/string/get.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: GET 3 | description: Return the value of the specified key or `null` if the key doesn't exist. 4 | --- 5 | 6 | 7 | ## Arguments 8 | 9 | 10 | The key to get. 11 | 12 | 13 | ## Response 14 | 15 | 16 | The response is the value stored at the key or `null` if the key doesn't exist. 17 | 18 | 19 | 20 | 21 | 22 | ```ts Example 23 | type MyType = { 24 | a: number; 25 | b: string; 26 | } 27 | const value = await redis.get("key"); 28 | if (!value) { 29 | // key doesn't exist 30 | } else { 31 | // value is of type MyType 32 | } 33 | ``` 34 | 35 | --------------------------------------------------------------------------------