Skip to main content

rc, the redis cache

Project description

rc: the redis cache

rc - the redis cache.

  • easy to use

  • can build cache cluster

  • batch-fetch multiple cache results (do it in parallel for cluster)

For full documentation see rc.readthedocs.org.

Installation

$ pip install rc

Quickstart

A minimal cache example looks like this:

from rc import Cache

cache = Cache()
assert cache.set('key', 'value')
assert cache.get('key') == 'value'
assert cache.get('foo') is None
assert cache.set('list', [1])
assert cache.get('list') == [1]

A cache cluster use a redis cluster as backend:

from rc import CacheCluster

cache = CacheCluster({
    'cache01': {'host': 'redis-host01'},
    'cache02': {'host': 'redis-host02'},
    'cache03': {'host': 'redis-host03'},
    'cache04': {'host': 'redis-host04', 'db': 1},
})

Cache decorator:

@cache.cache()
def load(name, offset):
    return load_from_database(name, offset)

rv = load('name', offset=10)

Batch fetch multiple cache results:

assert cache.get_many('key', 'foo') == ['value', None]

# for cache decorated function
@cache.cache()
def cached_func(param):
    return param

results = []
# with the context manager, the function
# is executed and return a promise
with cache.batch_mode():
    for i in range(10):
        results.append(cached_func(i))
for i, rv in enumerate(results):
    assert rv.value == i

Cache invalidation:

cache.delete('key')
# for decorated function
cache.invalidate(load, 'name', offset=10)

Better

If you feel anything wrong, feedbacks or pull requests are welcomed.

Project details


Download files

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

Source Distribution

rc-0.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

rc-0.2-py2-none-any.whl (15.2 kB view details)

Uploaded Python 2

File details

Details for the file rc-0.2.tar.gz.

File metadata

  • Download URL: rc-0.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rc-0.2.tar.gz
Algorithm Hash digest
SHA256 a487536c3bcf0fbe37f29cde3b3b52603118b952e8c9c77121d582a2186816d9
MD5 52f97f512c9920924d2197b743f6dd0d
BLAKE2b-256 ce78944bf2ff4e4a8e8f62cee8b34d9d9655704fb29b443b0bab10cd2dbf9b86

See more details on using hashes here.

File details

Details for the file rc-0.2-py2-none-any.whl.

File metadata

  • Download URL: rc-0.2-py2-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rc-0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 632f6429ca868dca443079e0312ac13fc84754ac1561c3f12f859ea207d7f450
MD5 3fd874be3012afe032ab8894d746d392
BLAKE2b-256 d67ad0bf7c80643b68d4ee4cf008f9550d05624f3dd44abcf10ac9c3616ac830

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