用于数据库记录zlib压缩的zodb存储包装器

zc.zlibstorage的Python项目详细描述


ZODB storage wrapper for zlib compression of database records

zc.zlibstorage包提供zodb存储包装 提供数据库记录压缩的实现。

Usage

主存储器是zc.zlibstorage.ZlibStorage。它被用作 围绕较低级别存储器的包装。来自python,它是 通过传递另一个存储器来构造,如:

import ZODB.FileStorage, zc.zlibstorage

storage = zc.zlibstorage.ZlibStorage(
    ZODB.FileStorage.FileStorage('data.fs'))

使用zodb配置文件时,将使用zlibstorage标记:

%import zc.zlibstorage

<zodb>
  <zlibstorage>
    <filestorage>
      path data.fs
    </filestorage>
  </zlibstorage>
</zodb>

注意%import用于加载 zlibstorage标记。

Use with ZEO

当与zeo clientstorage一起使用时,需要使用服务器zlib 存储服务器上的存储。这是必要的,以便服务器 需要获取未压缩记录数据的操作可以这样做。 这是使用zeo中的serverzlibstorage标记完成的 服务器配置文件:

%import zc.zlibstorage

<zeo>
  address 8100
</zeo>

<serverzlibstorage>
  <filestorage>
    path data.fs
  </filestorage>
</serverzlibstorage>

以这种方式对客户端应用压缩很有吸引力,因为 除了减少存储在 服务器,还可以减小从服务器发送到 客户端和存储在客户端zeo缓存中的记录大小。

Decompressing only

默认情况下,记录在写入存储时被压缩,并且 从存储器读取时未压缩。一个compress选项可以是 用于禁用压缩记录,但仍解压缩压缩的记录 如果遇到记录。下面是python中的一个示例:

import ZODB.FileStorage, zc.zlibstorage

storage = zc.zlibstorage.ZlibStorage(
    ZODB.FileStorage.FileStorage('data.fs'),
    compress=False)

使用configurationb语法:

%import zc.zlibstorage

<zodb>
  <zlibstorage>
    compress false
    <filestorage>
      path data.fs
    </filestorage>
  </zlibstorage>
</zodb>

此选项在以下情况下部署存储时非常有用 多个客户。如果您不想更新 一旦,您可以使用zlib存储逐步更新所有客户机 它不进行压缩,但识别压缩记录。那么, 在第二个阶段,您可以更新客户端以压缩记录,在 在这一点上,所有的客户端都可以读取压缩的 制作记录。

Compressing entire databases

压缩数据库中所有记录的一种方法是复制数据 从未压缩的数据库到压缩的数据库,如:

import ZODB.FileStorage, zc.zlibstorage

orig = ZODB.FileStorage.FileStorage('data.fs')
new = zc.zlibstorage.ZlibStorage(
    ZODB.FileStorage.FileStorage('data.fs-copy'))
new.copyTransactionsFrom(orig)

orig.close()
new.close()

Record prefix

压缩记录的前缀为“.z”。这允许数据库 有压缩和未压缩的混合记录。

Stand-alone Compression and decompression functions

希望能堵住压缩和解压缩 在不创建存储的情况下将逻辑转换到其他工具中,使用的函数 压缩和解压缩数据记录可用作 zc.zlibstorage模块级函数:

compress(data)

压缩给定的数据,如果:

  • 它是一个长度超过20个字符的字符串,
  • 它不是以压缩记录标记b'.z'
  • 压缩后的大小比原来的小。

返回压缩(或原始)数据。

decompress(data)

如果数据被压缩,则对其进行解压缩。

将返回解压缩(或原始)数据。

Changes

1.2.0 (2017-01-20)

1.1.0 (2016-08-03)

  • 修复了与zodb5的不兼容。以前的可选和 数据库invalidate方法的忽略版本参数现在是 不允许。
  • 放弃对Python2.6、3.2和3.3的支持。增加了对Python3.4和3.5的支持。

1.0.0 (2015-11-11)

  • Christian Tismer提供的Python3支持。

0.1.1 (2010-05-26)

  • 修正了一个包装错误。

0.1.0 (2010-05-20)

初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ApachePOI如何通过java从excel文件中删除空白列?   linux到后台Java服务应用程序的简单发送/接收接口   java ActionBarPullToRefresh什么都没发生   java从millis获取错误的整数天   java相同的代码在两个不同的包上表现不同   java将每个新的char元素写入一个文件(如果被覆盖)   mysql如何在Java中通过外键链接的多个表中插入数据   java环境下mysql网络文件访问   java当使用构建器模式时,为什么我不应该重用builderobject来访问对象配置?   java jQueryServlet post异常失败   java应该使用什么逻辑来创建像《愤怒的小鸟》中那样的锁屏   java Android:在不滑动的情况下更改ViewPager中的片段   java在使用我的程序逻辑时获得空输出