1234567891011121314151617181920212223242526272829303132 |
- from django.core.cache.backends.memcached import BaseMemcachedCache
- import memcache
- DEFAULT_MAX_VALUE_LENGTH = 1024 * 1024 * 15
- class MemcachedCache(BaseMemcachedCache):
- def __init__(self, server, params):
- self._options = params.get("OPTIONS", {})
- memcache.SERVER_MAX_VALUE_LENGTH = self._options.get('SERVER_MAX_VALUE_LENGTH', DEFAULT_MAX_VALUE_LENGTH)
- super(MemcachedCache, self).__init__(
- server,
- params,
- library=memcache,
- value_not_found_exception=ValueError
- )
- @property
- def _cache(self):
- if getattr(self, '_client', None) is None:
- server_max_value_length = memcache.SERVER_MAX_VALUE_LENGTH
- '''
- one could optionally send more parameters here through the options settings,
- I simplified here for brevity
- '''
- self._client = self._lib.Client(
- self._servers,
- server_max_value_length=server_max_value_length
- )
- return self._client
|