Zope 的缓存管理器
项目描述
概述
这个包为 Zope 提供了两个缓存管理器。一个 RAMCacheManager 和一个 Accelerated HTTP 缓存管理器,它将 HTTP 缓存标头添加到响应中。
以下内容适用于对 RAMCacheManager 内部感兴趣的人,例如维护者。
介绍
缓存框架不以任何方式解释数据,它只是作为传递给它的数据的通用存储。它会尝试检查数据是否可腌制。IOW,只有可腌制的数据是可缓存的。
RAMCacheManager 背后的想法是它应该在线程之间共享,这样相同的对象就不会在每个线程中缓存。这是通过将缓存数据结构本身存储为模块级变量 (RAMCacheManager.caches) 来实现的。当然,这需要锁定对该数据结构的修改。
每个 RAMCacheManager 实例在 RAMCacheManager.caches 字典中都有一个缓存。创建缓存管理器时会生成一个唯一的 __cacheid,它用作缓存的键。
对象层次结构
- RAMCacheManager
- 内存缓存
- 对象缓存条目
缓存入口
RAMCacheManager 是一个持久的位置对象。它在创建时被分配了一个唯一的 __cacheid。然后将其用作在全局缓存字典中查找相应 RAMCache 对象的键。因此,每个 RAMCacheManager 都有一个与之相关的 RAMCache。
RAMCache 是一个易失性缓存,对每个 RAMCacheManager 都是唯一的。它在线程之间共享并执行所有锁定。它有一个写锁。虽然阅读时没有锁定。RAMCache 保存由缓存对象的物理路径索引的 ObjectCacheEntries 字典。
ObjectCacheEntries 是单个对象的缓存值的容器。其中的值由 view_name、有趣的请求变量和传递给 Cache.ZCache_set() 的额外关键字的元组索引。
CacheEntry 是单个缓存值的包装器。它存储数据本身、创建时间、view_name 并保持访问计数。
变更日志
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)
更多包清理
为 Zope 4 清理 ZMI 视图
由于 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-4.1.1-py2.py3-none-any.whl 的哈希 值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 766678e11bbf8cf5789cf2c23933ad04cf502f210284cf11b17b88280ef816c1 |
|
MD5 | 2457ad566dd3264999254b8183b82ca7 |
|
布莱克2-256 | 9e5ac55992e0cc8a31e155c6454ddb6ac33db1545eca11fa812f65283ce3bdb8 |