]> git.ipfire.org Git - ipfire.org.git/blob - src/backend/memcached.py
people: Encourage people to upload an avatar
[ipfire.org.git] / src / backend / memcached.py
1 #!/usr/bin/python
2
3 import logging
4 import memcache
5
6 from .misc import Object
7
8 class Memcached(Object):
9 def init(self):
10 self._connection = memcache.Client(["localhost"], debug=1)
11
12 def get(self, key, *args, **kwargs):
13 key = self._sanitize_key(key)
14
15 logging.debug("Retrieving %s from cache..." % key)
16
17 ret = self._connection.get(key, *args, **kwargs)
18
19 if ret is None:
20 logging.debug("Found nothing for %s" % key)
21 else:
22 logging.debug("Found object for %s" % key)
23
24 return ret
25
26 def get_multi(self, keys, *args, **kwargs):
27 keys = (self._sanitize_key(key) for key in keys)
28
29 logging.debug("Retrieving keys from cache: %s" % keys)
30
31 ret = self._connection.get_multi(keys, *args, **kwargs)
32
33 if ret is None:
34 logging.debug("Found nothing for %s" % keys)
35 else:
36 logging.debug("Found objects for %s" % keys)
37
38 return ret
39
40 def add(self, key, data, *args, **kwargs):
41 key = self._sanitize_key(key)
42
43 if data is None:
44 logging.debug("Putting nothing into cache for %s" % key)
45 else:
46 logging.debug("Putting object into cache for %s" % key)
47
48 return self._connection.add(key, data, *args, **kwargs)
49
50 def set(self, key, data, *args, **kwargs):
51 key = self._sanitize_key(key)
52
53 if data is None:
54 logging.debug("Putting nothing into cache for %s" % key)
55 else:
56 logging.debug("Putting object into cache for %s" % key)
57
58 return self._connection.set(key, data, *args, **kwargs)
59
60 def delete(self, key, *args, **kwargs):
61 key = self._sanitize_key(key)
62
63 return self._connection.delete(key, *args, **kwargs)
64
65 def incr(self, key):
66 key = self._sanitize_key(key)
67
68 logging.debug("Incrementing key %s" % key)
69
70 return self._connection.incr(key)
71
72 @staticmethod
73 def _sanitize_key(key):
74 # Memcache does not seem to like any spaces
75 return key.replace(" ", "-")