Silva CMS的缓存子系统
项目描述
展示
此软件包为与Silva相关的组件提供可插拔的缓存支持,基于Beaker。默认情况下,内容将在内存中缓存,但您可以使用不同的存储方式,如文件、memcache或SQL数据库来存储缓存内容。
对于单实例安装,我们建议使用内存作为存储。对于ZEO / 多Zope实例安装,我们建议使用memcache作为存储。
要使用memcache,建议安装pylibmc,这可以通过buildout完成。有关详细信息,请参阅Silva的安装文档。
之后,您可以在Zope配置(zope.conf)中配置哪些存储区域使用哪种存储。
<product-config silva.core.cache> # default region default.lock_dir /tmp/memcache default.type ext:memcached default.url localhost:11211 # shared region shared.lock_dir /tmp/memcache shared.type ext:memcached shared.url someotherhost:11211 </product-config>
API
开发者有多种工具可供选择,主要有
- silva.core.cache.descriptors.cached_method
装饰器,可用于类方法上以缓存其计算。它可以接受一个区域,指定使用哪个缓存区域,一个键,它是一个可调用的,以参数形式接受调用方法所在类的对象来计算缓存键。如果没有指定区域,则所有其他参数都是用于配置缓存管理器的Beaker选项。
- silva.core.cache.descriptors.cached_property
装饰器,可用于类上创建一个只读属性,其计算结果在Beaker中缓存。除了键外,它接受与cached_method相同的参数。
- silva.core.cache.store.Store
指定一个缓存名称,它提供了对这个缓存的字典访问。
- silva.core.cache.store.SessionStore
由请求构建而成,它为该用户会话提供了一个唯一的缓存字典访问。会话通过zope.session的适配器IClientId来识别。该包中实现了Zope 2的此适配器。
- silva.core.cache.interfaces.ICacheManager
一个全局实用工具提供此接口,以提供对由该扩展使用的所有缓存管理器的访问。
- silva.core.cache.memcacheutils.MemcacheSlice
在memcache中存储一个项目列表。
代码仓库
此扩展的代码可以在Git上找到:https://github.com/silvacms/silva.core.cache
更改
3.0.2 (2013/03/06)
会话cookie现在使用IVirtualSite的新顶级路径方法而不是根路径,确保cookie为整个站点设置。
3.0.1 (2012/09/24)
会话cookie现在使用HTTPOnly标志。
更新API以匹配Silva 3.0c1。
3.0 (2011/11/08)
添加一个memcache切片以在memcache中存储项目列表。如果没有memcache,则有一个备选方案。
改进缓存描述符。
2.3.2 (2010/10/27)
确保缓存键始终是字符串。这是由memcache实现所要求的。
2.3.1 (2010/10/18)
修复虚拟主机托管情况下的cookie路径。
2.3 (2010/10/06)
初始发布。
项目详细信息
silva.core.cache-3.0.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a57224b923254ae235602409dcbd41da656d869385defdcdf62ad6991d42a31 |
|
MD5 | e271afb094408aff622c3ba6a660208b |
|
BLAKE2b-256 | 83bedfa283906c530e6eadaecdc0d2b2c26a5843a2fe21645e0662ad08de0743 |