我使用新设置来增加 memcached 中的项目大小,但我无法通过 Django 后端存储大于 1mb 的内容。
我知道memcache
模块需要一些设置来实现这一点,Django 在后端使用这个模块。
From memcache.py 可以保存在 memcached 中的对象的最大大小 https://stackoverflow.com/a/1440773/58107:
memcached FAQ 中有两个相关条目:
所以我猜你的 11MB 文件太大了,装不下
内存缓存条目。
如果你确实想缓存更大的对象,你将不得不继承 Django 的 MemcachedCache 子类,因为它不允许你传递选项 https://github.com/django/django/blob/master/django/core/cache/backends/memcached.py#L163:
self._client = self._lib.Client(self._servers, pickleProtocol=pickle.HIGHEST_PROTOCOL)
子类实现示例:
from django.core.cache.backends.memcached import MemcachedCache
class LargeMemcachedCache(MemcachedCache):
"Memcached cache for large objects"
@property
def _cache(self):
if getattr(self, '_client', None) is None:
self._client = self._lib.Client(self._servers,
pickleProtocol=pickle.HIGHEST_PROTOCOL,
server_max_value_length = 1024*1024*10)
return self._client
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)