summaryrefslogtreecommitdiff
path: root/django/core/cache
diff options
context:
space:
mode:
Diffstat (limited to 'django/core/cache')
-rw-r--r--django/core/cache/backends/memcached.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py
index ed3f2af492..6a7ced6073 100644
--- a/django/core/cache/backends/memcached.py
+++ b/django/core/cache/backends/memcached.py
@@ -26,12 +26,16 @@ class BaseMemcachedCache(BaseCache):
self._class = library.Client
self._options = params.get('OPTIONS') or {}
+ @property
+ def client_servers(self):
+ return self._servers
+
@cached_property
def _cache(self):
"""
Implement transparent thread-safe access to a memcached client.
"""
- return self._class(self._servers, **self._options)
+ return self._class(self.client_servers, **self._options)
def get_backend_timeout(self, timeout=DEFAULT_TIMEOUT):
"""
@@ -192,6 +196,13 @@ class PyLibMCCache(BaseMemcachedCache):
import pylibmc
super().__init__(server, params, library=pylibmc, value_not_found_exception=pylibmc.NotFound)
+ @property
+ def client_servers(self):
+ output = []
+ for server in self._servers:
+ output.append(server[5:] if server.startswith('unix:') else server)
+ return output
+
def touch(self, key, timeout=DEFAULT_TIMEOUT, version=None):
key = self.make_key(key, version=version)
self.validate_key(key)