跳转到主要内容

Django缓存后端使用pylibmc

项目描述

https://travis-ci.org/django-pylibmc/django-pylibmc.svg

此软件包为Django提供了一个使用pylibmc的memcached缓存后端。您想使用pylibmc,因为它速度快。

您需要django-pylibmc吗?

Django直接支持pylibmc。要使用它,设置您的缓存后端

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1.11211',
    }
}

有关使用此缓存后端的详细信息,请参阅Django文档

使用django-pylibmc的两种理由是

  • 您需要使用二进制协议

  • 您需要使用用户名和密码来访问memcached服务器(例如,在Heroku上的Memcachier)。

需求

django-pylibmc需要pylibmc 1.4.1或更高版本。它支持Django 1.7至1.9,以及Python版本2.7、3.4和3.5。

安装

pypi 获取。

pip install django-pylibmc

或者从 github 获取。

pip install -e git://github.com/django-pylibmc/django-pylibmc.git#egg=django-pylibmc

使用方法

您的缓存后端应该看起来像这样

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': 'localhost:11211',
        'TIMEOUT': 500,
        'BINARY': True,
        'OPTIONS': {  # Maps to pylibmc "behaviors"
            'tcp_nodelay': True,
            'ketama': True
        }
    }
}

要使用 memcached 本地套接字连接,将 LOCATION 设置为文件路径,例如 '/var/run/memcached/memcached.sock'

如果您想使用 memcached 二进制协议,将 BINARY 键的值设置为如上所示的 True。默认情况下,BINARYFalse

如果您想控制 pylibmc 行为,请使用 OPTIONS。默认情况下,OPTIONS 是一个空的字典。

Pylibmc 支持 压缩,可以通过 Django 设置 PYLIBMC_MIN_COMPRESS_LEN 设置压缩值的最小大小(以字节为单位)。默认值为 0,表示禁用。

Pylibmc 1.3.0 及以上版本允许配置压缩级别,可以通过 Django 设置 PYLIBMC_COMPRESS_LEVEL 设置。它接受与 Python zlib 模块相同的值。请注意,pylibmc 在 1.3.0 中将默认值从 1(《Z_BEST_SPEED》)更改为 -1(《Z_DEFAULT_COMPRESSION》)。

使用环境变量进行配置

可选地,可以使用环境变量(例如 Heroku)配置 memcached 连接。为此,声明以下变量

  • MEMCACHE_SERVERS

  • MEMCACHE_USERNAME

  • MEMCACHE_PASSWORD

缓存超时

设置缓存值时,memcache 允许您设置值的过期时间。通常,值设置为秒数超时。但是,也允许其他值,包括 Unix 时间戳和 0 表示“永不过期”。最大的秒数是 30 天 - 更多的话,值会被视为时间戳。

Django 尝试使用自当前时间起秒数的缓存超时。0 被视为 0 秒,意味着项目应立即过期。None 超时表示项目不应过期。也提供对 memcache 风格的 Unix 时间戳的一些支持。

在遥远的过去(Django 1.3?),0 超时被转换为默认超时。

当前的 django-pylibmc 行为是将 0 传递给后端,这应被解释为“永不过期”。省略超时将获取 Django 默认值。

将来,django-pylibmc 将采用最新的 Django 行为。您自己代码的最安全解决方案是省略超时参数(并获取默认超时),或将它设置为秒数超时(少于 30 天)。这样,当 Django 行为被采用时,您的代码将可以工作。避免使用 0、None 或负数作为超时。

测试

安装 tox

pip install tox

像这样运行测试

tox

变更日志

0.6.1 - 2015-12-28

  • 支持 Django 1.7 至 1.9

  • 支持 Python 2.7、3.4 和 3.5

0.6.0 - 2015-04-01

  • 需要 pylibmc 1.4.1 或更高版本

  • 支持 Django 1.4 至 1.8

  • 支持 Python 2.5 至 2.7,以及 Python 3.3 至 3.4

  • 在 Django 1.6 及更高版本中,当省略超时时,使用默认超时,而不是设置为“永不过期”。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-pylibmc-0.6.1.tar.gz (10.2 kB 查看哈希值)

上传时间

构建分发

django_pylibmc-0.6.1-py2.py3-none-any.whl (8.8 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持