Skip to content

MikeVL/redis_cache

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

redis_cache Build Status Coverage Status

Implements high level function caching to Redis with a decorator

Install

pip install redis_cache_decorator

Usage

Setup

from redis_cache.redis_cache import RedisCache
r = RedisCache('localhost', 6379)

Cache

@r.cache()
def my_method(a, b, c):
  return a ** b ** c

Options

expiration: Number of seconds to keep the result in the cache. Defaults to 60 seconds when not specified.

e.g.

@r.cache(expiration=100)
def my_method():
  ...

signature_generator: Callable function that generates the signature to cache on. The default signature generator will be used if not specified.

e.g.

def sig_gen(*args, **kwargs):
  return "?".join(args)
  
r.cache(signature_generator=sig_gen)
def my_method():
  ...

Contributing

Check for any open issues, or open one yourself! All contributions are appreciated.

Tests

nosetests

Note

When implementing the caching decorator on methods with objects as parameters, please be sure to override the __str__ method on that object. The default behavior for most objects in Python is to return a string such as <Object instance at 0x12345678>. Since this is in the signature of the function, it will cache using that address in memory and will result in cache misses everytime that object is changed. This is especially apparent while caching class methods since the first paramter is always the object itself (self).

About

Redis Cache decorator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%