https://github.com/redis-developer/redis-starter-python
A starter project for working with Redis and Python
https://github.com/redis-developer/redis-starter-python
fastapi python redis redis-py starter template uv
Last synced: 2 months ago
JSON representation
A starter project for working with Redis and Python
- Host: GitHub
- URL: https://github.com/redis-developer/redis-starter-python
- Owner: redis-developer
- Created: 2025-01-14T00:58:20.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-28T19:47:54.000Z (3 months ago)
- Last Synced: 2025-02-28T23:05:27.230Z (3 months ago)
- Topics: fastapi, python, redis, redis-py, starter, template, uv
- Language: Python
- Homepage: https://redis.io/docs/latest/develop/clients/redis-py/
- Size: 214 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This is a [Redis](https://redis.io/) starter template for Go:
- [Redis Cloud](https://redis.io/try-free/)
- [Echo](https://echo.labstack.com/)## Requirements
- [make](https://www.make.com/en)
- [python>=3.9](https://www.python.org/)
- [uv](https://docs.astral.sh/uv/)
- [docker](https://www.docker.com/)
- Optional## Getting started
Copy and edit the `.env` file:
```bash
cp .env.example .env
```Your `.env` file should contain the connection string you copied from Redis Cloud.
Your `.env.docker` file will look similar to `.env`, but should use the appropriate docker internal URLs. Here is
an example:```bash
REDIS_URL="redis://redis:6379"
```Next, spin up docker containers:
```bash
make docker
```You should have a server running on `http://localhost:` where the port is set in your `.env` file (default is 8080). You can test the following routes:
1. `GET /api/todos` - Gets all todos
2. `GET /api/todos/:id` - Gets a todo by ID
3. `GET /api/todos?[name=]&[status=]` - Search for todos by name and/or status
4. `POST /api/todos` - Create a todo with `{ "name": "Sample todo" }`
5. `PATCH /api/todos/:id` - Update todo by ID with `{ "status": "todo|in progress|complete" }`
6. `DELETE /api/todos/:id` - Delete a todo by ID## Running tests
There are some tests in the `__tests__` folder that can be run with the following command:
```bash
make test
```These tests setup and teardown on their own. You can modify them if you want to leave data in Redis.
## Running locally outside docker
To run the server outside of docker you need to first create a `.venv`:
```bash
make install && source .venv/bin/activate
```From then on, you can run a dev server:
```bash
make dev
```## Other Scripts
Run `make` to see the list of available commands.
## Connecting to Redis Cloud
If you don't yet have a database setup in Redis Cloud [get started here for free](https://redis.io/try-free/).
To connect to a Redis Cloud database, log into the console and find the following:
1. The `public endpoint` (looks like `redis-#####.c###.us-east-1-#.ec2.redns.redis-cloud.com:#####`)
1. Your `username` (`default` is the default username, otherwise find the one you setup)
1. Your `password` (either setup through Data Access Control, or available in the `Security` section of the database
page.Combine the above values into a connection string and put it in your `.env` and `.env.docker` accordingly. It should
look something like the following:```bash
REDIS_URL="redis://default:@redis-#####.c###.us-west-2-#.ec2.redns.redis-cloud.com:#####"
```Run the [tests](#running-tests) to verify that you are connected properly.
## Learn more
To learn more about Redis, take a look at the following resources:
- [Redis Documentation](https://redis.io/docs/latest/) - learn about Redis products, features, and commands.
- [Learn Redis](https://redis.io/learn/) - read tutorials, quick starts, and how-to guides for Redis.
- [Redis Demo Center](https://redis.io/demo-center/) - watch short, technical videos about Redis products and features.