跳转到主要内容

Zope的缓存管理器

项目描述

https://github.com/zopefoundation/Products.StandardCacheManagers/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/zopefoundation/Products.StandardCacheManagers/badge.svg?branch=master Current version on PyPI Supported Python versions

概述

此软件包为Zope提供了两个缓存管理器:一个RAMCacheManager和一个加速HTTP缓存管理器,它会在响应中添加HTTP缓存头。

以下内容面向对RAMCacheManager内部感兴趣的人,例如维护者。

简介

缓存框架不会以任何方式解释数据,它只是作为传递给它数据的通用存储。尽管如此,它仍然会尝试检查数据是否可pickle。换句话说,只有可pickle的数据才能被缓存。

RAMCacheManager背后的理念是它应该在线程之间共享,这样同一对象就不会在每个线程中缓存。这是通过将缓存数据结构本身作为模块级变量(RAMCacheManager.caches)来实现的。当然,这需要对该数据结构的修改进行锁定。

每个RAMCacheManager实例在RAMCacheManager.caches字典中都有一个缓存。在创建缓存管理器时生成一个唯一的__cacheid,它用作缓存键。

对象层次结构

RAMCacheManager
RAMCache
ObjectCacheEntries

CacheEntry

RAMCacheManager是一个持久的占位对象。它在其创建时分配一个唯一的__cacheid。然后它被用作全局缓存字典中查找相应RAMCache对象的键。因此,每个RAMCacheManager都有一个与之相关的单个RAMCache。

RAMCache是每个RAMCacheManager唯一的易失性缓存。它在线程之间共享并执行所有锁定操作。它有一个写锁。但在读取时没有进行锁定。RAMCache保持一个按缓存对象的物理路径索引的ObjectCacheEntries字典。

ObjectCacheEntries是单个对象的缓存值的容器。它中的值按view_name、感兴趣请求变量和传递给Cache.ZCache_set()的额外关键字元组索引。

CacheEntry是一个围绕单个缓存值的包装器。它存储数据本身、创建时间、view_name并保持访问计数。

变更日志

5.0 (2023-02-01)

  • 删除对Python 2.7、3.5和3.6的支持。

4.2 (2022-12-16)

  • 修复针对Zope 4的测试中的隐秘的buildout配置错误。

  • 添加对Python 3.10和3.11的支持。

4.1.1 (2021-07-02)

  • 修复关于rfc1123_date的DeprecationWarning(#8)。

4.1.0 (2021-03-16)

  • 添加对Python 3.9的支持。

4.0.3 (2019-10-14)

  • 更多的包清理。

  • 清理ZMI视图以适用于Zope 4。

  • 修复由于Python 3行为改变引起的几个错误。

  • 将isort更新到版本5。

4.0.2 (2019-02-17)

  • 使用setup.py中的python_requires指定支持的Python版本。

  • 添加对Python 3.7和3.8的支持。

  • 删除对Python 3.4的支持,因为Zope不再支持它。

  • 更多的PEP8合规性。

4.0.1 (2017-05-23)

  • 将版本依赖移动到Zope的发布版本。

4.0.0 (2017-05-13)

  • 需要Zope 4。

  • Python 3兼容性

3.0 (2016-07-18)

  • 删除HelpSys支持。

2.13.1 (2014-09-14)

  • 防止在没有请求的上下文中进行RAM缓存时出现警告。

2.13.0 (2010-07-11)

  • 作为单独的包发布。

项目详情


下载文件

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

源代码分发

Products.StandardCacheManagers-5.0.tar.gz (20.0 kB 查看哈希值

上传时间

构建分发

Products.StandardCacheManagers-5.0-py3-none-any.whl (25.0 kB 查看哈希值

上传于 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面