Skip to main content

cacheblob is a key-value interface for expiring items.

Project description

python-cacheblob

cacheblob is a key-value interface for expiring items.

Installation

pip install python-cacheblob

Usage

import datetime
from cacheblob import Cacheblob

cache = Cacheblob.cache(handler='mongo')
cache.store(index='index2', value='value2', duration=datetime.timedelta(days=1))
for item in cache.fetch_all():
    print item

Use Case

cacheblob was designed for data sources that should age and expire. Using it should be as simple as setting an expiry time (or duration) on your data.

As such, cacheblob avoids imposing too many design decisions upon the user beyond those necessary for its expiry functionality. It decouples the interface and the storage mechanism by allowing arbitrary underlying storage systems, called handlers in cacheblob.

Cacheblob has an item concept, which is a key-value pair with an expiry time. Most handlers except strings for values or will work with any values that can be converted to strings. Not all handlers are necessarily subject to this limitation.

Cacheblob was designed to be lightweight by default, and to be flexible, by allowing the user to choose their underlying storage model. Worried about concurrency? Use a handler that allows concurrent access. You want your items as files on disk for easy access by programs that expect them as such? Use a file-backed handler. Choose your own consistency-availability-tolerance trade-off.

The current implemented handlers are:

  • handler: A lightweight wrapper that uses Python’s in-memory storage

  • mongo: Store items in a Mongo database

  • sqlite: Store items in a SQLite database

  • plaintext: Store items as files in a folder on disk

  • gzip: Store items as gzip files in a folder on disk

Authors

rdj - https://oddacious.github.io

Changelog

0.1.0 (2016-11-01)

  • First PyPi release

0.1.0a1 (2016-09-10)

  • Prerelease

Project details


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