]> git.ipfire.org Git - ipfire.org.git/blob - src/backend/memcached.py
.gitignore: Add .vscode
[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 = None
11
12 servers = self.get_servers()
13
14 # Nothing to do, if no servers have been configured.
15 if not servers:
16 logging.warning("No memcache servers defined")
17 return
18
19 logging.info("Using memcache servers: %s" % ", ".join(servers))
20 self._connection = memcache.Client(servers, debug=0)
21
22 def get_servers(self):
23 servers = self.settings.get("memcached_servers")
24
25 if servers:
26 return servers.split(" ")
27
28 def get(self, key, *args, **kwargs):
29 if not self._connection:
30 return
31
32 key = str(key)
33
34 return self._connection.get(key, *args, **kwargs)
35
36 def set(self, key, *args, **kwargs):
37 if not self._connection:
38 return
39
40 key = str(key)
41
42 return self._connection.set(key, *args, **kwargs)
43
44 def delete(self, key, *args, **kwargs):
45 if not self._connection:
46 return
47
48 key = str(key)
49
50 return self._connection.delete(key, *args, **kwargs)