From a5bb14ed2e3e1a26a4f7312582cf3e350bdd3985 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sun, 25 Mar 2007 23:29:31 +0000 Subject: [PATCH] Fixed #3648 -- Added support for cmemcached Python library. Thanks, floguy@gmail.com git-svn-id: http://code.djangoproject.com/svn/django/trunk@4827 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/cache/backends/memcached.py | 7 +++++-- docs/cache.txt | 17 +++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index 180f95da734..1ab019221a3 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -3,9 +3,12 @@ from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError try: - import memcache + import cmemcache as memcache except ImportError: - raise InvalidCacheBackendError, "Memcached cache backend requires the 'memcache' library" + try: + import memcache + except: + raise InvalidCacheBackendError("Memcached cache backend requires either the 'memcache' or 'cmemcache' library") class CacheClass(BaseCache): def __init__(self, server, params): diff --git a/docs/cache.txt b/docs/cache.txt index 054d99819da..e245e100e78 100644 --- a/docs/cache.txt +++ b/docs/cache.txt @@ -66,10 +66,19 @@ deleting arbitrary data in the cache. All data is stored directly in memory, so there's no overhead of database or filesystem usage. After installing Memcached itself, you'll need to install the Memcached Python -bindings. They're in a single Python module, memcache.py, available at -ftp://ftp.tummy.com/pub/python-memcached/ . If that URL is no longer valid, -just go to the Memcached Web site (http://www.danga.com/memcached/) and get the -Python bindings from the "Client APIs" section. +bindings. Two versions of this are available. Choose and install *one* of the +following modules: + + * The fastest available option is a module called ``cmemcache``, available + at http://gijsbert.org/cmemcache/ . (This module is only compatible with + the Django development version. Django 0.96 is only compatible with the + second option, below.) + + * If you can't install ``cmemcache``, you can install ``python-memcached``, + available at ftp://ftp.tummy.com/pub/python-memcached/ . If that URL is + no longer valid, just go to the Memcached Web site + (http://www.danga.com/memcached/) and get the Python bindings from the + "Client APIs" section. To use Memcached with Django, set ``CACHE_BACKEND`` to ``memcached://ip:port/``, where ``ip`` is the IP address of the Memcached