在从缓存中读取之后将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