Skip to main content

Automatic Django memcached configuration on Heroku.

Project description

# django-heroku-memcacheify

Automatic Django memcached configuration on Heroku.

![Deploying memcached is easy](

## Install

To install ``django-heroku-memcacheify``, simply run
``pip install django-heroku-memcacheify`` and you'll get the latest version
installed automatically.

**NOTE**: If you'd like to install this locally, you'll need to have the
``libmemcached-dev`` libraries installed for this to compile properly. On
Debian and Ubuntu you can install this by running ``sudo aptitude -y install
libmemcached-dev``. If you're using a Mac, you can use
[homebrew]( and run ``brew install libmemcached``.

## Usage

Modify your Django ```` file, and set:

``` python
from memcacheify import memcacheify

CACHES = memcacheify()

Next, edit your ``requirements.txt`` file (which Heroku reads) and add
``pylibmc==1.2.3`` to the bottom of the file. This is required for Heroku to
detect the necessary C dependencies and 'bootstrap' your application. This requirement
has to be in the root ``requirements.txt`` file, not in any imported requirements.
([Solution from Stack Overflow](

Assuming you have a memcache server available to your application on Heroku, it
will instantly be available. If you have no memcache addon provisioned for your
app, ``memcacheify`` will default to using local memory caching as a backup :)

## Heroku Setup

Now that you've got Django configured to use memcache, all you need to do is
install one memcache addons that Heroku provides!

I personally recommend [MemCachier]( --
they're stable, cheap, great!

Let's say I want to install the ``memcachier`` addon, I could simply run:

``` bash
$ heroku addons:add memcachier:25
$ heroku config
MEMCACHIER_PASSWORD => l0nGr4ndoMstr1Ngo5strang3CHaR4cteRS

The example above will provision a *free* 25m memcache server for your
application. Assuming everything worked, ``heroku config``'s output should show
that you now have 3 new environment variables set.

## Local Development
If you have a memcached server locally for development that doesn't support
authentication, you can still use memcache by setting an environment variable

This will set the default cache to `django_pylibmc.memcached.PyLibMCCache`

If there are no environment variables for memcache or memcacheify, the default
cache will be local memory `django.core.cache.backends.locmem.LocMemCache`.

## Testing Your Cache

If you don't trust me, and want to make sure your caching is working as
expected, you may do the following:

``` bash
$ heroku run python shell
Running python shell attached to terminal... up, run.1
Python 2.7.2 (default, Oct 31 2011, 16:22:04)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from django.core.cache import cache
>>> cache.set('memcache', 'ify!')
>>> cache.get('memcache')

Assuming everything is working, you should be able to set and retrieve cache

## References

If you're confused, you should probably read:

- [Heroku's Getting Started Guide](
- [Heroku's memcachier Addon Documentation](

## Tests

[![Build Status](](

Want to run the tests? No problem:

``` bash
$ git clone git://
$ cd django-heroku-memcacheify
$ python develop
$ pip install -r requirements.txt # Install test dependencies.
$ nosetests
Ran 13 tests in 0.166s


## Changelog

v1.0.0: 01-04-2016

- Update django-pylibmc dependency to >=0.6.1.
- Officially support Python 3.5.
- Stop testing on Python 2.6.

v0.8: 11-12-2014

- Adding support for memcachedcloud!

v0.7: 9-22-2014

- Upgrading dependencies (again)!

v0.6: 9-20-2014

- Upgrading dependencies.

v0.5: 12-31-2013

- Making the timeout option configurable.
- Removing Python 2.5 support.
- Adding an option to use memcached locally without SASL.
- Updating the README, explaining how to use memcached locally.

v0.4: 12-5-2012

- Update which allows memcachier users to support multiple servers >:)
Thanks @alexlod!

v0.3: 6-27-2012

- Fixing broken memcachier support.

v0.2: 5-22-2012

- Adding support for memcachier Heroku addon.
- Updating documentation.
- Refactoring implementation for clarity.
- Adding better tests.

v0.1: 5-2-2012

- Initial release!

Project details

Download files

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

Files for django-heroku-memcacheify, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size django_heroku_memcacheify-1.0.0-py2.py3-none-any.whl (7.6 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size django-heroku-memcacheify-1.0.0.tar.gz (38.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page