├── 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 | 
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 |
--------------------------------------------------------------------------------