Giter Club home page Giter Club logo

django-redis-cache's Introduction

Redis Django Cache Backend

A cache backend for Django using the Redis datastructure server.

Changelog

0.13.0

  • Adds custom has_key implementation that uses Redis's exists command.

    This will speed has_key up drastically if the key under question is extremely large.

0.12.0

  • Keys can now be kept alive indefinitely by setting the timeout to None,

    e.g. cache.set('key', 'value', timeout=None)

  • Adds ttl method to the cache. cache.ttl(key) will return the number of

    seconds before it expires or None if the key is not volitile.

0.11.1

  • Allows user to specify the connection pool class kwargs, e.g. timeout,

    max_connections, etc.

0.11.0

  • Adds support for specifying the connection pool class.
  • Adds ability to set the max connections for the connection pool.

0.10.0

Adds Support for Python 3.3 and Django 1.5 and 1.6. Huge thanks to Carl Meyer for his work.

0.9.0

Redis cache now 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 now 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.

Notes

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

Redis writes to disk asynchronously so there is a slight chance of losing some data, but for most purposes this is acceptable.

In order to use redis.connection.HiredisParser parser class, you need to pip install hiredis. This is the recommended parser class.

Usage

  1. Run python setup.py install to install, or place redis_cache on your Python path.
  2. Modify your Django settings to use redis_cache :

On Django < 1.3:

CACHE_BACKEND = 'redis_cache.cache://<host>:<port>'

On Django >= 1.3:

# When using TCP connections
CACHES = {
    'default': {
        'BACKEND': 'redis_cache.RedisCache',
        'LOCATION': '<host>:<port>',
        'OPTIONS': {
            'DB': 1,
            'PASSWORD': 'yadayada',
            'PARSER_CLASS': 'redis.connection.HiredisParser',
            'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool',
            'CONNECTION_POOL_CLASS_KWARGS': {
                'max_connections': 50,
                'timeout': 20,
            }
        },
    },
}

# 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.RedisCache',
        'LOCATION': '/path/to/socket/file',
        'OPTIONS': {
            'DB': 1,
            'PASSWORD': 'yadayada',
            'PARSER_CLASS': 'redis.connection.HiredisParser'
        },
    },
}

django-redis-cache's People

Contributors

sebleier avatar jezdez avatar aleszoulek avatar carljm avatar mattdennewitz avatar barttc avatar twidi avatar thoas avatar markng avatar cyberdelia avatar kami avatar issackelly avatar jaylett avatar liorsion avatar xintron avatar mkai avatar mattrobenolt avatar coderanger avatar mucca avatar wtracyliu avatar

Watchers

James Cloos avatar Keng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.