Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A collection of cache helpers

Project Description

Useful cache helpers in one package!


pip install cachelper


In memory cache


Caching function return values in memory.

import cachelper

def fibo(n):
    if n in (0, 1):
        return 1
    return fibo(n - 1) + fibo(n - 2)


Cache with Redis/Memcached

cache decorator

Add cache by decorating a function or method.

from redis import StrictRedis
from werkzeug.contrib.cache import RedisCache as _RedisCache

import cachelper

class RedisCache(_RedisCache, HelperMixin):
    '''werkzeug.contrib.cache.RedisCache mixed with HelperMixin'''

    def get_many(self, keys):
        return super().get_many(*keys)

rds = StrictRedis()
cache = RedisCache(rds)

@cache("key-{user_id}", timeout=300)
def get_name(user_id):
    # Fetch user name from database

You may use this mixin to create cache class of your own, as long as the following methods are provided:

  • def get(self, key)
  • def set(self, key, value, timeout=None)
  • def delete(self, key)
  • def get_many(self, keys)
  • def set_many(self, mapping, timeout=None)

cached function calls

Sometimes we don’t want to cache all calls to a specific function. So the decorator is not suitable, we may cache the call instead the function in this case:

def get_name(user_id):
    # Fetch user name from database

user_id = 42
key = "key-{user_id}".format(user_id=user_id) get_name(user_id), key, timeout=300)

cached multiple calls

For most cache backends, it’s much faster to get or set caches in bulk.

def get_name(user_id):
    # Fetch user name from database

user_ids = [1, 2, 42, 1984]
names ="key-{user_id}", get_name, user_ids, timeout=300)

Release History

History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

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

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(3.4 kB) Copy SHA256 Hash SHA256
Source None Sep 2, 2017

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting