Cachetools Utilities
Project description
cachetools-utils
Classes to add key prefix and stats to cachetools classes and use redis and memcached as storage backends.
Usage
Install with pip
:
pip install CacheToolsUtils
See below.
Documentation
This module provide the following cache wrappers suitable to use
with cachetools
:
PrefixedCache
Add a key prefix.
import CacheToolsUtils as ctu
base = cachetools.TTLCache(ttl=600)
foo_cache = ctu.PrefixedCache(base, "foo.")
bla_cache = ctu.PrefixedCache(base, "bla.")
@cachetools.cached(cache=foo_cache)
def foo(…):
return …
@cachetools.cached(cache=bla_cache)
def bla(…):
return …
StatsCache
Keep stats, cache hit rate shown with hits()
.
MemCached
Basic wrapper with JSON key encoding.
import pymemcache as pmc
mcbase = pmc.Client(server="localhost", serde=ctu.JsonSerde())
cache = ctu.MemCached(mcbase)
@cachetools.cached(cache=cache)
def poc(…):
PrefixedMemCached
Wrapper with a prefix.
pcache = ctu.PrefixedMemCached(mcbase, prefix="pic.")
StatsMemCached
Wrapper with stats actually taken from the MemCached server.
RedisCache
TTL'ed Redis wrapper, default ttl is 10 minutes.
import redis
rd_base = redis.Redis(…, ttl=60)
cache = ctu.RedisCache(rd_base)
PrefixedRedisCache
Wrapper with a prefix and a ttl.
StatsRedisCache
Wrapper with stats (call hits()
) and a ttl.
License
This code is public domain.
Versions
1.0.0 on 2022-01-29
Add set
, get
and delete
forwarding to RedisCache
, so that redis
classes can be stacked.
0.9.0 on 2022-01-29
Initial version extracted from another project.
TODO
- improve documentation
- add a
close
?
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for CacheToolsUtils-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68feaf667435ed6c7542db4ba6dcbed53c9cc8f0d55c490b73186a2ca8ff7500 |
|
MD5 | f6d1002723bc688eeac6fe94c5a5a01d |
|
BLAKE2b-256 | 9d1f21b4cc96ba8536b912b05f408b2f41bbf9fa0b958a563ae81eb05d815e82 |