跳转到主要内容

一个通用的内存缓存模块

项目描述

这个简单的通用缓存实现版权(c)Pilot Systems,2006-2008,并根据GNU GPL v2条款提供。

版本信息

版本1.0.2,需要Python 2.4或更高版本。

功能

  • 快速内存缓存任何对象

  • 类似字典的使用方式

  • 可以限制缓存大小为对象数量

  • 可以在给定时间无更新后自动过期对象

  • 线程安全

基本用法

创建缓存

>>> from GenericCache.GenericCache import GenericCache
>>> c = GenericCache()

存储值

>>> c["key"] = "value"
   or
>>> c.insert("key", "value")

检索值

>>> c["key"]
   or
>>> c.fetch("key")

如果在缓存中找不到值,则返回None。Fetch可以接受一个可选值,在找不到值时失败(KeyError)。

警告

  • 在当前实现中,键被转换为字符串

  • 对象的超时对于超时是懒加载的,这意味着对象将保留在缓存中,直到有人尝试访问它们;len()仍然可以看到它们;有一个collect()方法来收集所有超时对象,但它可能很慢。

装饰器使用

Python 2.4+中的装饰器可以用来装饰任何函数或方法。以下是一个示例

>>> from GenericCache.GenericCache import GenericCache
>>> from GenericCache.decorators import cached
>>> cache = GenericCache()
>>> @cached(cache)
... def add(x, y):
...     print x, "+", y
...     return x + y
...
>>> add(2,3)
2 + 3
5
>>> add(2,3)
5
>>> add(2,4)
2 + 4
6
>>> add(2,4)
6
>>> add(2,3)
5
>>>

装饰器接受一个可选参数,一个marshaller,它过滤函数的参数并将其转换为缓存键(某些参数可能被丢弃,例如)。

项目详情


下载文件

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

源代码分发

GenericCache-1.0.2.tar.gz (12.2 kB 查看哈希值)

上传时间: 源代码