Skip to main content

Amazon DynamoDB as a cache store.

Project description

ddbc

Version Build Status Coverage

Description

Amazon DynamoDB as a cache store.

Requirements

  • Python2.7

  • pip

Installation

PyPI

pip install ddbc

Setup

  • Create IAM Role or User

Policy example:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
              "dynamodb:CreateTable",
              "dynamodb:DeleteItem",
              "dynamodb:GetItem",
              "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:<region>:<account-id>:table/<cache-table>"
        }
    ]
}
  • Create the DynamoDB table for cache

Script Example:

#!/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

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

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 (marcy9114@gmail.com)

License

MIT License (see LICENSE)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

ddbc-0.1.0-py2-none-any.whl (6.6 kB view details)

Uploaded Python 2

File details

Details for the file ddbc-0.1.0-py2-none-any.whl.

File metadata

File hashes

Hashes for ddbc-0.1.0-py2-none-any.whl
Algorithm Hash digest
SHA256 d9c72d78841e551defb1691de0f6b87acbc262ed7f0355fe1ffc92df63107a0c
MD5 a0fbe4cc57c2274c4ee9abbe24d99459
BLAKE2b-256 158d0bfb758decf7fc62410a6f6b75bb7e3c624912f8c1a6f0bf9f01049a183f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page