Skip to main content

Redis Cache Backend for Django. (This is fork of django-redis-cache)

Project description

It is a fork of django-redis-cache. And the reasons are: The author seems to have abandoned the project and has significant bugs that have not been fixed.

Features:

  • In active development.

  • Sharding supported in a single package.

  • Complete battery of tests (accepting improvements).

  • Used in production environments on several projects.

Description.

Redis cache allows you to use either a TCP connection or Unix domain socket to connect to your redis server. Using a TCP connection is useful for when you have your redis server separate from your app server and/or within a distributed environment. Unix domain sockets are useful if you have your redis server and application running on the same machine and want the fastest possible connection.

You can specify (optionally) what parser class you want redis-py to use when parsing messages from the redis server. redis-py will pick the best parser for you implicitly, but using the PARSER_CLASS setting gives you control and the option to roll your own parser class if you are so bold.

This cache backend requires the redis-py Python client library for communicating with the Redis server.

This cache backend is full ready for django-orm-extensions orm cache.

How to install.

Run python setup.py install to install, or place redis_cache on your Python path.

You can also install it with: pip install django-redis

Changes on 2.0 (2012-04-17)

Now implemented sharding feature. For use it, see this example config:

CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.ShardedRedisCache',
        'LOCATION': [
            '127.0.0.1:6379:1',
            '127.0.0.1:6379:2',
            'unix:/path/to/socket:3',
        ],
        'OPTIONS': {
            'PARSER_CLASS': 'redis.connection.HiredisParser'
        }
    }
}

The syntax of a LOCATION array item is a <ip>:<port>:<db> or unix:<path>:db. This feature is stil experimental. Welcome, improvements and bug fixes.

Usage cache backend.

Modify your Django settings to use redis_cache

# When using TCP connections
CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.RedisCache',
        'LOCATION': '<host>:<port>',
        'OPTIONS': {
            'DB': 1,
            'PARSER_CLASS': 'redis.connection.HiredisParser'
        },
    },
}

# When using unix domain sockets
# Note: ``LOCATION`` needs to be the same as the ``unixsocket`` setting
# in your redis.conf
CACHES = {
    'default': {
        'BACKEND': 'redis_cache.cache.RedisCache',
        'LOCATION': '/path/to/socket/file',
        'OPTIONS': {
            'DB': 1,
            'PASSWORD': 'foopassword',
            'PICKLE_VERSION': -1,   # default
            'PARSER_CLASS': 'redis.connection.HiredisParser'
        },
    },
}

Usage redis_cache.stats django-app.

  1. Place redis_cache.stats on your INSTALLED_APPS.

  2. Add this url on your urls.py:

    url(r'^redis/status/', include('redis_cache.stats.urls', namespace='redis_cache'))

Note: only tested with django >= 1.4, if you find a bug that happens with previous versions, I will gladly fix it.

Project details


Download files

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

Source Distribution

django-redis-2.0c2.tar.gz (43.3 kB view details)

Uploaded Source

File details

Details for the file django-redis-2.0c2.tar.gz.

File metadata

File hashes

Hashes for django-redis-2.0c2.tar.gz
Algorithm Hash digest
SHA256 57b6874154303fc5d3d171e128e0c3a762c96eacc061f8d9bc826899d3772b50
MD5 94f17c7beda68ebb9f81264feae6607f
BLAKE2b-256 3001aa41fb910f0b6a3830aec9462cf16aa58501e583baa82a7a675f7954ea18

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page