Skip to main content

Documentation Index

Fetch the complete documentation index at: https://upstash.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Need a Redis database fast? Skip the signup and dashboard — POST to https://upstash.com/start-redis to get an endpoint and token in a single HTTP request. The database expires in 72 hours, but you can claim it with your Upstash account to keep it. Especially useful for AI agents that need scratch storage on the fly.

Introduction

In this quickstart tutorial, we will explore how to use Flask with Upstash Redis to build a simple web application that increments a counter each time a user accesses the homepage.

Environment Setup

First, install Flask and the Upstash Redis client for Python.
pip install flask
pip install upstash-redis

Database Setup

Create a Redis database using Upstash Console or Upstash CLI and export the UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN to your environment.
export UPSTASH_REDIS_REST_URL=<YOUR_URL>
export UPSTASH_REDIS_REST_TOKEN=<YOUR_TOKEN>
You can also use python-dotenv to load environment variables from your .env file.

Application Setup

Create app.py:
app.py
from flask import Flask
from upstash_redis import Redis

app = Flask(__name__)

redis = Redis.from_env()

@app.route('/')
def index():
    count = redis.incr('counter')
    return f'Page visited {count} times.'

if __name__ == '__main__':
    app.run(debug=True)

Running the Application

Run the Flask app locally:
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
  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.
  3. Display the Count: The number of visits is returned in the response as plain text.