2013-05-10 39 views

回答

5

Maximum size of object that can be saved in memcached with memcache.py

有關於兩個項目在分佈式緩存FAQ:

  • 什麼是你可以存儲的最大數據大小?爲什麼項目限制爲1兆字節大小的 ?第一個的答案是(引用,重點是 地雷):

  • 您可以在memcached中存儲的值的最大值爲1兆字節。 如果您的數據較大,請考慮客戶端壓縮或將 的值分成多個密鑰。

所以我猜你的11MB的文件是相當太大,不適合在一個 memcached的條目。

如果你真的想緩存較大的物體,你將不得不繼承Django的MemcachedCache因爲它doesn't allow you to pass in options

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