Hermes Cache 1.0.0 | GitLocker.com Product

HermesCache 1.0.0

Last updated:

0 purchases

HermesCache 1.0.0 Image
HermesCache 1.0.0 Images

Free

Languages

Categories

Add to Cart

Description:

HermesCache 1.0.0

HermesCache
Hermes is a Python caching library. It was designed to fulfil the following
requirements:

Tag-based O(1) cache invalidation
Dogpile effect (cache stampede) mitigation
Support for multi-threaded, multi-process, multi-machine & asynchronous operation
Cache compression
Modular design (pluggable backends, compressors, serialisers, etc.)
Simple yet flexible decorator API

Implemented backends: redis, memcached, inprocess.

Installation
pip install HermesCache
For Redis and Memcached it has the following extra dependencies.


HermesCache[redis]
Pure Python Redis client

HermesCache[redis-ext]
Pure Python Redis client & C extension parser

HermesCache[memcached]
Pure Python Memcached client





Quickstart
The following demonstrates the most of the package’s API.
import hermes.backend.redis


cache = hermes.Hermes(
hermes.backend.redis.Backend,
ttl = 600,
host = 'localhost',
db = 1,
)

@cache
def foo(a, b):
return a * b

class Example:

@cache(tags = ('math', 'power'), ttl = 1200)
def bar(self, a, b):
return a ** b

@cache(tags = ('math', 'avg'), key = lambda fn, a, b: f'avg:{a}:{b}')
def baz(self, a, b):
return (a + b) / 2

print(foo(2, 333))

example = Example()
print(example.bar(2, 10))
print(example.baz(2, 10))

foo.invalidate(2, 333)
example.bar.invalidate(2, 10)
example.baz.invalidate(2, 10)

cache.clean(['math']) # invalidate entries tagged 'math'
cache.clean() # flush cache

Note
The API encourages import-time instantiation of Hermes facade to allow
decoration of existing classes and functions, to make caching transparent
to them. The instantiation has no side-effects. Underlying backend
connections are lazy.
Moreover, if backend configuration is only available at runtime,
Hermes.backend instance can be replaced at runtime.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.