Сжатие объектов Python перед сохранением в кэш

Какой быстрый способ сжимать объекты Python (список, словарь, строку и т. Д.) Перед сохранением их в кеш и распаковывать после чтения из кеша?

Я' Я использую Django, и я надеюсь добавить поддержку сжатия / распаковки непосредственно в бэкэнд кеша Django, что делает его доступным для всех моих приложений Django.

Я посмотрел в django / core / cache / backends / 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))

Похоже на pickle / unpickle выполняется библиотекой cmemcache. Я не знаю, куда поместить код сжатия / распаковки.

5
задан jack 18 August 2010 в 15:47
поделиться