https://github.com/marcy-terui/ddbc
Amazon DynamoDB as a cache store
https://github.com/marcy-terui/ddbc
amazon-dynamodb aws cache python
Last synced: about 1 month ago
JSON representation
Amazon DynamoDB as a cache store
- Host: GitHub
- URL: https://github.com/marcy-terui/ddbc
- Owner: marcy-terui
- License: mit
- Created: 2016-12-29T01:27:42.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-03-29T08:24:40.000Z (about 8 years ago)
- Last Synced: 2026-01-08T19:01:23.265Z (5 months ago)
- Topics: amazon-dynamodb, aws, cache, python
- Language: Python
- Size: 14.6 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
ddbc
=======
[](https://pypi.python.org/pypi/ddbc)
[](http://travis-ci.org/marcy-terui/ddbc)
[](https://coveralls.io/github/marcy-terui/ddbc)
# Description
Amazon DynamoDB as a cache store.
# Requirements
- Python2.7
- pip
# Installation
## PyPI
```sh
pip install ddbc
```
# Setup
- Create IAM Role or User
Policy example:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:CreateTable",
"dynamodb:DeleteItem",
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:DescribeTable"
],
"Resource": "arn:aws:dynamodb:::table/"
}
]
}
```
- Create the DynamoDB table for cache
Script Example:
```python
#!/usr/bin/env python
import ddbc.utils
ddbc.utils.create_table(
table_name='cache_table',
region='us-east-1', # optional
read_units=10, # default: 5
write_units=10 # default: 5
)
```
# Usage
```python
import ddbc.cache
import time
cache = ddbc.cache.Client(
table_name='cache_table',
region='us-east-1', # optional
default_ttl=100, # default: -1 (Infinity)
report_error=True # default: False
)
cache['foo'] = 'bar'
print(cache['foo']) # => 'bar'
time.sleep(100)
print(cache['foo']) # => None
cache.set('foo', 'bar', 1000)
time.sleep(100)
print(cache['foo']) # => 'bar'
del cache['foo']
print(cache.get('foo', 'buz')) # => 'buz'
```
Development
-----------
- Source hosted at [GitHub](https://github.com/marcy-terui/ddbc)
- Report issues/questions/feature requests on [GitHub
Issues](https://github.com/marcy-terui/ddbc/issues)
Pull requests are very welcome! Make sure your patches are well tested.
Ideally create a topic branch for every separate change you make. For
example:
1. Fork the repo
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request
Authors
-------
Created and maintained by [Masashi Terui](https://github.com/marcy-terui) ()
License
-------
MIT License (see [LICENSE](https://github.com/marcy-terui/ddbc/blob/master/LICENSE))