/django-cacheback

Smart caching for Django using Celery to refresh cached items asynchronously.

Primary LanguagePythonMIT LicenseMIT

Cacheback

Asynchronous cache refreshing for Django

What does this library do?

It's an extensible caching library that refreshes stale cache items asynchronously using a Celery or rq task (utilizing django-rq). The key idea being that it's better to serve a stale item (and populate the cache asynchronously) than block the response process in order to populate the cache synchronously.

Using this library, you can rework your views so that all reads are from cache - which can be a significant performance boost.

A corollary of this technique is that cache hammering can be handled simply and elegantly, avoiding sudden surges of expensive reads when a cached item becomes stale.

Do you have good docs?

Yup - over on readthedocs.org.

Do you support Python 3?

Pythons 2.7, 3.3, 3.4, 3.5, 3.6, 3.7, PyPy, and PyPy3 are supported.

Django versions 1.8 to 2.1 are supported.

Do you have tests?

You betcha!

https://secure.travis-ci.org/codeinthehole/django-cacheback.png

Can I use this in my project?

Probably - subject to the MIT license.

I want to contribute!

Brilliant! Here are the contributing guidelines.