anchor.diff:  django-redis documentation
   ==========================
   Andrey Antukh, <niwi@niwi.be>
  -4.1.0
  +4.2.0
   :toc: left
   :numbered:
   :source-highlighter: pygments
  
positive.code: ^^^^^^^^^^^^^^^^^^^^^^
  
  - *django-redis 3.8.x* will maintain support for django 1.4, 1.5, 1.6, 1.7 (and maybe 1.8)
  - *django-redis 4.1.0* will maintain support for django 1.6, 1.7 and 1.8
  
  
  Redis Server Support
  
negative.code: 25
  >>> cache.ttl("not-existent")
  0
  ----
  
  
  Expire & Persist
  ~~~~~~~~~~~~~~~~
  
  Additionally to the simple ttl query, you can send persist a concrete key or specify
  a new expiration timeout using the `persist` and `expire` methods:
  
  .Example using `persist` method
  [source, pycon]
  -----
  >>> cache.set("foo", "bar", timeout=22)
  >>> cache.ttl("foo")
  22
  >>> cache.persist("foo")
  >>> cache.ttl("foo")
  None
  -----
  
  .Example using expire method
  [source,pycon]
  ----
  >>> cache.set("foo", "bar", timeout=22)
  >>> cache.expire("foo", timeout=5)
  >>> cache.ttl("foo")
  5
  ----
  
  
  Locks
  ~~~~~
  
  It also supports the redis ability to create redis distributed named locks. The Lock
  interface is identical to the `threading.Lock` so you can use it as replacement.
  
  .Example allocating a lock using python context managers facilities.
  [source, python]
  ----
  with cache.lock("somekey"):
      do_some_thing()
  ----
  
  
  