Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.


django-heroku-memcacheify is unavailable in PyPM, because there aren't any builds for it in the package repositories. Click the linked icons to find out why.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
Depended by

# django-heroku-memcacheify

Automatic Django memcached configuration on Heroku.

![Deploying memcached is easy](https://github.com/rdegges/django-heroku-memcacheify/raw/master/assets/memcacheify.jpg)

## 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](http://mxcl.github.com/homebrew/) and run brew install libmemcached.

## Usage

Modify your Django settings.py file, and set:

``` python from memcacheify import memcacheify

System Message: WARNING/2 (<string>, line 26); backlink

Inline literal start-string without end-string.

CACHES = memcacheify() ```

System Message: WARNING/2 (<string>, line 29); backlink

Inline literal start-string without end-string.

System Message: WARNING/2 (<string>, line 29); backlink

Inline interpreted text or phrase reference start-string without end-string.

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](http://stackoverflow.com/questions/11507639/memcached-on-heroku-w-django-cant-install-pylibmc-memcacheify/11587142#11587142))

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 of the two excellent memcache addons that Heroku provides!

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

` bash $ heroku addons:add memcachier:25 $ heroku config ... MEMCACHIER_SERVERS    => memcachier1.example.net MEMCACHIER_USERNAME   => bobslob 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.

## 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 manage.py shell Running python manage.py 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. (InteractiveConsole) >>> from django.core.cache import cache >>> cache.set('memcache', 'ify!') True >>> cache.get('memcache') 'ify!' >>> `

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

## References

If you're confused, you should probably read:

## Tests

[![Build Status](https://secure.travis-ci.org/rdegges/django-heroku-memcacheify.png?branch=master)](http://travis-ci.org/rdegges/django-heroku-memcacheify)

Want to run the tests? No problem:

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

System Message: WARNING/2 (<string>, line 108); backlink

Inline literal start-string without end-string.


## Changelog

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!

Subscribe to package updates

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.