Zope2的缓存管理器。
Products.StandardCacheManagers的Python项目详细描述
概述
这个包为zope提供了两个缓存管理器。一个ramcachemanager和一个 加速的http缓存管理器,它向响应添加http缓存头。
以下是为对 ramcachemanager,例如维护人员。
简介
缓存框架不会以任何方式解释数据,它会执行以下操作 就像一般的数据存储一样。它试图检查 不过,数据是可以提取的。听着,只有可pickle数据是 可缓存。
ramcachemanager背后的思想是它应该在 线程,以便在每个线程中不缓存相同的对象。这个 通过将缓存数据结构本身存储为模块来实现 级别变量(ramcachemanager.caches)。当然,这需要 锁定该数据结构的修改。
每个ramcachemanager实例在ramcachemanager.caches中都有一个缓存 字典。创建缓存时生成唯一的缓存ID 它被用作缓存的密钥。
对象层次结构
- 内存缓存管理器
- 内存缓存
- 对象缓存条目
- 缓存条目
ramcachemanager是一个持久的placeful对象。它被分配一个 创建时的唯一缓存ID。然后用它作为一把钥匙 全局缓存字典中相应的ramcache对象。 因此,每个ramcachemanager都有一个与之相关的ramcache。
ramcache是一个易失性缓存,对每个ramcachemanager都是唯一的。它是 在线程之间共享并执行所有锁定。它有一个书面记录。 但是在读取时没有锁定。ramcache有一本字典 由缓存对象的物理路径索引的objectcacheentries。
objectcacheentries是单个对象的缓存值的容器。 其中的值由视图名的元组索引,有趣的是 请求变量和传递给cache.zcache_set()的额外关键字。
cacheentry是单个缓存值的包装器。它存储 数据本身、创建时间、查看名称并保持访问计数。
更改日志
4.0.2(2019-02-17)
- 在setup.py中使用python_requires指定受支持的python版本
- 增加了对Python3.7和3.8的支持
- 已放弃对Python3.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)
- 作为单独包装发布。