From 5642fdec17c0e5f04b28bb57ca0fc764f768af1c Mon Sep 17 00:00:00 2001 From: ytkimirti Date: Fri, 10 Jul 2026 10:39:11 +0300 Subject: [PATCH 1/8] =?UTF-8?q?docs(redis):=20refresh=20quickstarts=20?= =?UTF-8?q?=E2=80=94=20AWS=20Lambda=20runtimes,=20SST=20v3=20merge,=20Next?= =?UTF-8?q?.js=2016,=20Laravel=20TLS+client,=20FastAPI=20CLI,=20Vercel=20P?= =?UTF-8?q?ython=20uv=20rewrite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - aws-lambda: NODEJS_20_X โ†’ NODEJS_24_X (Node 20 blocked for new functions Aug 31, 2026); python-aws-lambda: PYTHON_3_9 โ†’ PYTHON_3_13 - SST: merge sst-v2 + ion into single sst page on SST v3 (sst init/dev/deploy), add redirects; ion branding retired, v2 maintenance-only - Next.js: retitle to Next.js 16, use Redis.fromEnv(), warn create-next-app defaults to App Router on pages-router guides - Vercel: drop deprecated Edge Runtime recommendation, remove redundant force-dynamic - vercel-python-runtime: rewrite for restructured uv-based template (no requirements.txt/Django 4.1/conda), add DJANGO_SECRET_KEY step - laravel (+caching tutorial): add predis install + REDIS_CLIENT, tls:// prefix on REDIS_HOST - fastapi: pip install "fastapi[standard]" (plain fastapi no longer ships the CLI) - regenerate llms.txt/llms-full.txt Claude-Session: https://claude.ai/code/session_01Tc1iBL5JRmQx3mFvQwmaq9 --- docs.json | 18 +-- llms-full.txt | 5 +- llms.txt | 5 +- redis/quickstarts/aws-lambda.mdx | 6 +- redis/quickstarts/fastapi.mdx | 2 +- redis/quickstarts/flask.mdx | 2 +- redis/quickstarts/laravel.mdx | 17 ++- redis/quickstarts/nextjs-app-router.mdx | 9 +- redis/quickstarts/nextjs-pages-router.mdx | 10 +- redis/quickstarts/python-aws-lambda.mdx | 8 +- redis/quickstarts/sst-v2.mdx | 118 ------------------ redis/quickstarts/{ion.mdx => sst.mdx} | 22 ++-- .../vercel-functions-app-router.mdx | 6 +- .../vercel-functions-pages-router.mdx | 8 +- redis/quickstarts/vercel-python-runtime.mdx | 44 +++---- redis/tutorials/laravel_caching.mdx | 11 +- 16 files changed, 101 insertions(+), 190 deletions(-) delete mode 100644 redis/quickstarts/sst-v2.mdx rename redis/quickstarts/{ion.mdx => sst.mdx} (79%) diff --git a/docs.json b/docs.json index 9ef2ac42..a4a28c41 100644 --- a/docs.json +++ b/docs.json @@ -95,19 +95,13 @@ ] }, { - "group": "Next.js 15", + "group": "Next.js 16", "pages": [ "redis/quickstarts/nextjs-app-router", "redis/quickstarts/nextjs-pages-router" ] }, - { - "group": "SST", - "pages": [ - "redis/quickstarts/sst-v2", - "redis/quickstarts/ion" - ] - }, + "redis/quickstarts/sst", { "group": "Python", "pages": [ @@ -1930,6 +1924,14 @@ ] }, "redirects": [ + { + "source": "/redis/quickstarts/ion", + "destination": "/redis/quickstarts/sst" + }, + { + "source": "/redis/quickstarts/sst-v2", + "destination": "/redis/quickstarts/sst" + }, { "source": "/workflow/basics/context", "destination": "/workflow/steps" diff --git a/llms-full.txt b/llms-full.txt index 67fc342a..85784982 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -21164,14 +21164,13 @@ We believe that Upstash is the best storage for your Lambda Functions because: - [Flask](https://upstash.com/docs/redis/quickstarts/flask.md) - [Fly.io](https://upstash.com/docs/redis/quickstarts/fly.md) - [Google Cloud Functions](https://upstash.com/docs/redis/quickstarts/google-cloud-functions.md) -- [Ion](https://upstash.com/docs/redis/quickstarts/ion.md) - [ioredis note](https://upstash.com/docs/redis/quickstarts/ioredisnote.md) - [Koyeb](https://upstash.com/docs/redis/quickstarts/koyeb.md) - [Laravel](https://upstash.com/docs/redis/quickstarts/laravel.md) - [App Router](https://upstash.com/docs/redis/quickstarts/nextjs-app-router.md) - [Pages Router](https://upstash.com/docs/redis/quickstarts/nextjs-pages-router.md) -- [ AWS Lambda](https://upstash.com/docs/redis/quickstarts/python-aws-lambda.md) -- [SST v2](https://upstash.com/docs/redis/quickstarts/sst-v2.md) +- [AWS Lambda](https://upstash.com/docs/redis/quickstarts/python-aws-lambda.md) +- [SST](https://upstash.com/docs/redis/quickstarts/sst.md) - [Supabase Functions](https://upstash.com/docs/redis/quickstarts/supabase.md) - [App Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-app-router.md) - [Pages Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-pages-router.md) diff --git a/llms.txt b/llms.txt index 548fbf63..8401d900 100644 --- a/llms.txt +++ b/llms.txt @@ -343,14 +343,13 @@ - [Flask](https://upstash.com/docs/redis/quickstarts/flask.md) - [Fly.io](https://upstash.com/docs/redis/quickstarts/fly.md) - [Google Cloud Functions](https://upstash.com/docs/redis/quickstarts/google-cloud-functions.md) -- [Ion](https://upstash.com/docs/redis/quickstarts/ion.md) - [ioredis note](https://upstash.com/docs/redis/quickstarts/ioredisnote.md) - [Koyeb](https://upstash.com/docs/redis/quickstarts/koyeb.md) - [Laravel](https://upstash.com/docs/redis/quickstarts/laravel.md) - [App Router](https://upstash.com/docs/redis/quickstarts/nextjs-app-router.md) - [Pages Router](https://upstash.com/docs/redis/quickstarts/nextjs-pages-router.md) -- [ AWS Lambda](https://upstash.com/docs/redis/quickstarts/python-aws-lambda.md) -- [SST v2](https://upstash.com/docs/redis/quickstarts/sst-v2.md) +- [AWS Lambda](https://upstash.com/docs/redis/quickstarts/python-aws-lambda.md) +- [SST](https://upstash.com/docs/redis/quickstarts/sst.md) - [Supabase Functions](https://upstash.com/docs/redis/quickstarts/supabase.md) - [App Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-app-router.md) - [Pages Router](https://upstash.com/docs/redis/quickstarts/vercel-functions-pages-router.md) diff --git a/redis/quickstarts/aws-lambda.mdx b/redis/quickstarts/aws-lambda.mdx index 5907802e..b53e33e1 100644 --- a/redis/quickstarts/aws-lambda.mdx +++ b/redis/quickstarts/aws-lambda.mdx @@ -12,7 +12,7 @@ title: "AWS Lambda" ### Prerequisites -- Complete all steps in [Getting started with the AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) +- Complete all steps in [Getting started with the AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html) ### Project Setup @@ -69,14 +69,14 @@ export class CounterCdkStack extends cdk.Stack { const counterFunction = new nodejs.NodejsFunction(this, 'CounterFunction', { entry: 'api/counter.ts', handler: 'handler', - runtime: lambda.Runtime.NODEJS_20_X, + runtime: lambda.Runtime.NODEJS_24_X, environment: { UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL || '', UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN || '', }, bundling: { format: nodejs.OutputFormat.ESM, - target: "node20", + target: "node24", nodeModules: ['@upstash/redis'], }, }); diff --git a/redis/quickstarts/fastapi.mdx b/redis/quickstarts/fastapi.mdx index 7421ffbf..208f902d 100644 --- a/redis/quickstarts/fastapi.mdx +++ b/redis/quickstarts/fastapi.mdx @@ -15,7 +15,7 @@ title: "FastAPI" Install FastAPI and `upstash-redis`. ```shell -pip install fastapi +pip install "fastapi[standard]" pip install upstash-redis ``` diff --git a/redis/quickstarts/flask.mdx b/redis/quickstarts/flask.mdx index 8e8cf3b0..8a1703fc 100644 --- a/redis/quickstarts/flask.mdx +++ b/redis/quickstarts/flask.mdx @@ -60,7 +60,7 @@ python app.py Visit `http://127.0.0.1:5000/` in your browser, and you will see the `counter` increment with each refresh. -Code Breakdown +### Code Breakdown 1. **Redis Setup:** We first import Flask and the Upstash Redis client. Using `Redis.from_env()`, we initialize the connection to our Redis database using the environment variables exported earlier. 2. **Increment Counter:** Each time the root route (`/`) is accessed, Redis increments the `counter` key. This key-value pair is automatically created in Redis if it does not exist, and its value is incremented on each request. diff --git a/redis/quickstarts/laravel.mdx b/redis/quickstarts/laravel.mdx index 6a8fd261..0bc68bba 100644 --- a/redis/quickstarts/laravel.mdx +++ b/redis/quickstarts/laravel.mdx @@ -27,12 +27,25 @@ composer create-project laravel/laravel example-app cd example-app ``` +## Redis Client Setup + +Laravel needs a Redis client to talk to your database. The easiest option is Predis, a pure-PHP client that requires no extension: + +```shell +composer require predis/predis +``` + + + If you have the [PhpRedis](https://github.com/phpredis/phpredis) PECL extension installed, you can skip this step โ€” Laravel uses it by default. + + ## Database Setup -Create a Redis database using [Upstash Console](https://console.upstash.com). Go to the **Connect to your database** section and click on Laravel. Copy those values into your .env file: +Create a Redis database using [Upstash Console](https://console.upstash.com). Go to the **Connect to your database** section and click on Laravel. Copy those values into your .env file. Note the `tls://` prefix on the endpoint โ€” Upstash requires TLS connections: ```shell .env -REDIS_HOST="" +REDIS_CLIENT="predis" +REDIS_HOST="tls://" REDIS_PORT=6379 REDIS_PASSWORD="" ``` diff --git a/redis/quickstarts/nextjs-app-router.mdx b/redis/quickstarts/nextjs-app-router.mdx index 9123c88f..c33a1ced 100644 --- a/redis/quickstarts/nextjs-app-router.mdx +++ b/redis/quickstarts/nextjs-app-router.mdx @@ -8,7 +8,7 @@ title: "App Router" --- -## Quickstart: Upstash Redis in Next 15 +## Quickstart: Upstash Redis in Next.js 16