保存到缓存之前如何压缩Python对象?

有时我们需要先压缩Python对象(列表,字典,字符串等),然后再将其保存到缓存中,并在从缓存中读取后解压缩。

首先,我们需要确保需要压缩对象。我们应该检查数据结构/对象是否太大,以至于无法在缓存中容纳未压缩的对象。压缩/解压缩会产生开销,因此我们必须首先权衡通过缓存获得的收益。

如果确实需要压缩,则可能要使用zlib。

如果要使用zlib,则可能需要尝试compress方法中可用的不同压缩级别,以平衡CPU时间与压缩级别:

zlib.compress(string [,level])

压缩字符串中的数据,返回包含压缩数据的字符串。level是控制压缩级别的1到9之间的整数;1最快,产生最小的压缩,9最快,产生最大的压缩。默认值为6。如果发生任何错误,则引发错误异常。