Fastapi Redis
This package provides a client that integrates with Fastapi and provides a decorator to cache fastapi controllers responses.
Installation
$ pip install fastapi_redis
Usage
Client
Setting the data
import redis_client from fastapi_redis
redis_client.set('some_key', 'some_data')
Models can be saved as well and the client will serialize them to json:
import redis_client from fastapi_redis
from pydantic.main import BaseModel
MyModel(BaseModel):
data: str
redis_client.set('some_key', MyModel(data='some_data'))
redis_client.set('some_key', MyModel(data='some_data_that_expires'), expiration=timedelta(days=1))
The data can be saved using the Fastapi Background Tasks so it wouldn't generate any delay on the response to the user:
import redis_client from fastapi_redis
@router.get('/')
async def my_controller_method(background_tasks: BackgroundTasks):
redis_client.set_in_background(background_tasks, 'some_key', 'some_data')
redis_client.set_in_background(background_tasks, 'some_key', MyModel(data='some_data_that_expires'), expiration=timedelta(days=1))
Getting the data
import redis_client from fastapi_redis
some_data = redis_client.get('some_key')
@redis_cache decorator
The @redis_cache decorator can be used to cache the response from a controller. Any argument of the controller can be used to specify the key of the data to store and if background_tasks: BackgroundTasks is defined as an argument it will store the data in the background as well:
import redis_client from fastapi_redis
@router.get('/resource/{id}')
@router_cache('resource_{id}_{user.id}', timedelta(days=1))
async def my_controller_method(id: str,
user: User = Depends(get_current_user)
background_tasks: BackgroundTasks):
return some_data_that_will_be_cached
Release files for fastapi-redis 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastapi-redis-0.1.11.tar.gz | 3.9 kB | Details |
Release files / fastapi-redis-0.1.11.tar.gz
| Download URL | fastapi-redis-0.1.11.tar.gz |
|---|---|
| Size | 3.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a10b5dfa364478272f4fffb1c1aa322622cab24573b4335c1fd0d91b7820d8e
|
|
BLAKE2b-256 checksum How to use checksums |
0477092167e49d64261810c2d1d1605c244615a3f54baebef6e0fd3093997210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
|