在從緩存中讀取之後將Python對象(列表,字典,字符串等)保存到緩存和解壓縮之前,什麼是快速壓縮Python對象的方法?在保存到緩存之前壓縮Python對象
我正在使用Django,我希望直接在Django的緩存後端添加壓縮/解壓縮支持,這使得它可用於我的所有Django應用程序。
我看着Django的/核心/緩存/後端/ memcached.py
import cmemcache as memcache
class CacheClass(BaseCache):
def __init__(self, server, params):
BaseCache.__init__(self, params)
self._cache = memcache.Client(server.split(';'))
def get(self, key, default=None):
val = self._cache.get(smart_str(key))
if val is None:
return default
return val
def set(self, key, value, timeout=0):
self._cache.set(smart_str(key), value, self._get_memcache_timeout(timeout))
看起來像泡菜/ unpickle由cmemcache庫完成。我不知道在哪裏放置壓縮/解壓縮代碼。
我的服務器是IO綁定和RAM綁定,而不是CPU綁定。當前的memcached分配使用1.3GB的RAM。因此,將數據壓縮50%可節省650MB RAM,或者可以在緩存中存儲兩次以上的項目。 – jack 2010-08-18 12:08:23
@jack - 看我的編輯 - 祝你好運! – 2010-08-18 12:11:48
謝謝,我投了你的答案。但我希望找到一個更通用的解決方案,它在緩存後端進行修改。 – jack 2010-08-18 15:43:46