Classes to add key prefix and stats to cachetools classes and use redis and memcached as storage backends, and other cache-related utils.

Status Tests Coverage Issues Python Version Badges License

Module Contents

For our purpose, a cache is a key-value store, aka a dictionary, possibly with some constraints on keys (type, size) and values (size, serialization). This module provides new caches, wrappers and other utilities suitable to use with cachetools.

Cache classes

  • RedisCache allows to see a Redis server as a python cache by wrapping a redis.Redis instance.

  • MemCached does the same for a Memcached server. The utility class JsonSerde is a convenient JSON serializer-deserializer class for Memcached.

  • DictCache a very simple dict cache.

Other wrappers to extend cache capabilities

  • PrefixedCache, PrefixedMemCached and PrefixedRedisCache add a prefix to distinguish sources on a shared cache.

  • StatsCache, StatsMemCached and StatsRedisCache add a hits() method to report the cache hit rate.

  • LockedCache use a (thread) lock to control cache accesses.

  • TwoLevelCache allows to combine two caches.

  • DebugCache to trace cache calls using logging.

Cache utilities

  • cached decorator: a cachetools replacement which allows to test if a function result is in cache, and to delete such an entry.

  • cacheFunctions and cacheMethods: add caching to functions or methods.


This code is Public Domain.

All software has bug, this is software, hence… Beware that you may lose your hairs or your friends because of it. If you like it, feel free to send a postcard to the author.


See the documentation, sources and issues on GitHub.

See packages on PyPI.

Indices and tables