No project description provided
Project description
django-dynamodb-cache
Fast, safe, cost-effective DynamoDB cache backend for Django
Introduce
This project is a cache backend using aws dynamodb.
This is compatible with the django official cache framework.
Did you set the boto3 permission?
Enter the django official command createcachetable and get started easily.
Why should I use this?
- There are few management points, because dynamodb is a fully managed service.
- Because you only pay for what you use, it saves money on light projects such as side projects or back offices.
- If you need more performance, you can easily switch to DAX.
Installation
pip install django-dynamodb-cache
Setup on Django
On Django settings.py
INSTALLED_APPS = [
...
"django_dynamodb_cache"
]
CACHES = {
"default": {
"BACKEND": "django_dynamodb_cache.backend.DjangoCacheBackend",
"LOCATION": "table-name", # (mandatory)
"TIMEOUT": 300, # (optional) seconds
"KEY_PREFIX": "django_dynamodb_cache", # (optional)
"VERSION": 1, # (optional)
"KEY_FUNCTION": "path.to.function", # (optional) f"{prefix}:{key}:{version}"
"OPTIONS": {
"aws_region_name": "us-east-1", # (optional)
"aws_access_key_id": "aws_access_key_id", # (optional)
"aws_secret_access_key": "aws_secret_access_key", # (optional)
"is_on_demand": False, # (optional) default: True
"read_capacity_units": 1, # (optional)
"write_capacity_units": 1, # (optional)
"encode": "django_dynamodb_cache.encode.PickleEncode" # (optional)
}
}
}
Aws credentials
The same method as configuring-credentials provided in the boto3 documentation is used. https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html#configuring-credentials
Create cache table command
Run manage command to create cache table on Dynamodb before using
python manage.py createcachetable
Future improvements
In this project, the following can be improved in the future.
- A full scan is included to achieve
cache.clear()
. This can lead to performance degradation when there is a lot of cached data.
How to contribute
This project is welcome to contributions!
Please submit an issue ticket before submitting a patch.
Pull requests are merged into the main branch and should always remain available.
After passing all test code, it is reviewed and merged.
Debug
Tests must be run in a sandbox environment.
To run the Dynamodb sandbox:
docker compose up --build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django_dynamodb_cache-0.6.0.tar.gz
.
File metadata
- Download URL: django_dynamodb_cache-0.6.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.8.18 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0082055cf1c7e2676c48bdca2fbdc1491c14fcb54fb5dfb339c5956e9ecae354 |
|
MD5 | bb694e3ef9d3fb33e971f05a0362da0d |
|
BLAKE2b-256 | 787461343ac47b5149cb9cb5fd988615bcd21c61e7f192c2aab766690dd7b2d1 |
File details
Details for the file django_dynamodb_cache-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: django_dynamodb_cache-0.6.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.8.18 Linux/6.2.0-1018-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3b39a710ff3decb9ad53de2206ccad92bcb75420743d89c6de27e77481b4f49 |
|
MD5 | 171f50be9f10758d0ece4d850c1a5fc6 |
|
BLAKE2b-256 | 63507da0def21391e7b80e46accc50a241242fe888f5c182fec99a2c2f5507db |