Code

Ticket #6464: 6464.memcached.incr.decr.diff

File 6464.memcached.incr.decr.diff, 973 bytes (added by PJCrosier, 6 years ago)

Adds decr and incr support to the memcached backend

Line 
1Index: django/core/cache/backends/memcached.py
2===================================================================
3--- django/core/cache/backends/memcached.py     (revision 7152)
4+++ django/core/cache/backends/memcached.py     (working copy)
5@@ -39,3 +39,23 @@
6 
7     def get_many(self, keys):
8         return self._cache.get_multi(map(smart_str,keys))
9+
10+    def decr(self, key, delta=1):
11+        val = self._cache.get(smart_str(key))
12+        if val is None:
13+            return None
14+        else:
15+            if isinstance(val, int) and isinstance(delta, int):
16+                return self._cache.decr(key, delta)
17+            else:
18+                return val
19+
20+    def incr(self, key, delta=1):
21+        val = self._cache.get(smart_str(key))
22+        if val is None:
23+            return None
24+        else:
25+            if isinstance(val, int) and isinstance(delta, int):
26+                return self._cache.incr(key, delta)
27+            else:
28+                return val